File tree 1 file changed +18
-0
lines changed
1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,20 @@ public function onMessage(WebSocketTransportInterface $user, WebSocketMessageInt
46
46
}
47
47
}
48
48
}
49
+ class ChatHandlerForUnroutedUrls extends WebSocketUriHandler {
50
+ /**
51
+ * This class deals with users who are not routed
52
+ */
53
+ public function onConnect (WebSocketTransportInterface $ user ){
54
+ //do nothing
55
+ $ this ->logger ->notice ("User {$ user ->getId ()} did not join any room " );
56
+ }
57
+ public function onMessage (WebSocketTransportInterface $ user , WebSocketMessageInterface $ msg ) {
58
+ //do nothing
59
+ $ this ->logger ->notice ("User {$ user ->getId ()} is not in a room but tried to say: {$ msg ->getData ()}" );
60
+ }
61
+ }
62
+
49
63
50
64
$ loop = \React \EventLoop \Factory::create ();
51
65
@@ -56,9 +70,13 @@ public function onMessage(WebSocketTransportInterface $user, WebSocketMessageInt
56
70
57
71
// Create a WebSocket server
58
72
$ server = new WebSocketServer ("tcp://0.0.0.0:12345 " , $ loop , $ logger );
73
+
59
74
// Create a router which transfers all /chat connections to the ChatHandler class
60
75
$ router = new \Devristo \Phpws \Server \UriHandler \ClientRouter ($ server , $ logger );
76
+ // route /chat url
61
77
$ router ->addRoute ('#^/chat$#i ' , new ChatHandler ($ logger ));
78
+ // route unmatched urls durring this demo to avoid errors
79
+ $ router ->addRoute ('#^(.*)$#i ' , new ChatHandlerForUnroutedUrls ($ logger ));
62
80
63
81
// Bind the server
64
82
$ server ->bind ();
You can’t perform that action at this time.
0 commit comments