Thread WebSocket Server tut nicht (3 answers)
Opened by Xorg1990 at 2013-08-04 11:58

murphy
 2013-08-05 12:58
#169362 #169362
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2013-08-04T09:58:48 Xorg1990
[...]
Das Problem habe ich schon erkannt, die Schleife wird bei "binary" ausgeführt und da es eine Endlosschleife ist kommt der Perl Interpreter nicht bi zu ->start.
[...]

Das ist nicht korrekt: Die Schleife steckt in einer Subroutine, die erst später innerhalb von ->start eventuell irgendwann mal aufgerufen wird. Wenn sie allerdings aufgerufen wird, hängt sie das Programm in eine Endlosschleife.

Der Code ist einfach semantisch nicht sinnvoll. In Deutsch übersetzt bedeuten Deine Anweisungen an den Computer etwa folgendes: Erzeuge einen neuen Websocket-Server und starte eine Ereignisschleife dafür; wann immer sich jemand mit dem Server verbunden und eine binäre Nachricht an ihn geschickt hat, starte eine Endlosschleife, die von einem anderen Dateideskriptor jeweils ein Byte liest und dieses als Nachricht an alle Clients, die mit dem Websocketserver verbunden sind, weiterschickt.

Ein ereignisgesteuerter Programmablauf lässt sich nicht auf diese Weise mit einer Schleife verbinden. Da CPAN:Net::WebSocket::Server offenbar keine Schnittstellen zum I/O-Multiplexing bietet, wird es eventuell schwierig, das Problem korrekt zu lösen. Vielleicht lässt sich mit Threads etwas Funktionierendes basteln.
When C++ is your hammer, every problem looks like your thumb.

View full thread WebSocket Server tut nicht