BlockingCall disconnected Websocket

Begonnen von Alexander Schulz, 08 November 2016, 18:57:00

Vorheriges Thema - Nächstes Thema

Alexander Schulz

Hi zusammen,

ich nutze das Modul Websocket_Client von User Murdock, um eine Websocket Verbindung über SSL mit dem Pushbullet Stream aufzubauen. Dazu habe ich folgende Zeilen, wie im Modul beschrieben, in der DevIo.pm ca. @ Zeile 356 eingefügt:

my $conn;
my $port = $2;
if($port eq "443") {
require IO::Socket::SSL;
$conn = IO::Socket::SSL->new(PeerAddr => $dev, Timeout => $timeout);
return "" if(!&$doTcpTail($conn)); #no callback: no doCb
} else {
$conn = IO::Socket::INET->new(PeerAddr => $dev, Timeout => $timeout);
return "" if(!&$doTcpTail($conn)); #no callback: no doCb
}


Damit kann ich dann wunderbar die Verbindung zu dem Stream aufbauen und habe keine Probleme.

Nun zu meinem Problem: Sobald ich das PRESENCE Modul verwende, bekomme ich alle 30 Sekunden (Standard Interval vom Presence Modul) einen Disconnect an meinem Websocket. Die Verbindung wird danach automatisch wieder aufgebaut, aber es geschieht eben alle 30 Sekunden.

2016.11.06 17:24:28 3: telnetForBlockingFn_1478449468.30287: port 50605 opened <-- während FHEM Boot
2016.11.06 17:24:28 1: stream.pushbullet.com:443 disconnected, waiting to reappear (websocket) <-- alle 30 Sekunden
2016.11.06 17:24:29 1: stream.pushbullet.com:443 reappeared (websocket)
2016.11.06 17:24:29 1: Finished handshare with WebSocket server.


define pHandy PRESENCE lan-ping 192.168.XXX.XXX

Ich habe das ganze mit meinem begrenzten Wissen analysiert und festgestellt, dass im Presence Modul, egal welchen Modus man verwendet, ein Blocking Call gemacht wird. Ich vermute, dass es daran liegt.

Hat jemand eine Idee, wie man das Problem lösen könnte?