我启动了一个websocket服务(websocket协议),然后打开了浏览器,打开了两个浏览器标签页与其建立连接(通过js原生的Websocket对象),然而,实际上我发现connections只有一个,这导致我无法向指定的标签页发送信息。
请问,如何向指定的客户端发送信息?
----------------------------分割线----------------------------
我是按照如下方式发现多个标签页用的是同一个connection的。
首先,在join或login时打印workerId和$connection->id拼成的字符串(logEvent是我自定义的日志输出函数)
然后,打开两个浏览器标签页各自建立连接
最后,查看服务端日志信息
Workerman start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:3.5.18 PHP version:7.2.8
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp www-data none websocket://0.0.0.0:2346 4
Press Ctrl+C to stop. Start success.
new connection is coming...172.18.0.1
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
-----join over
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
2019-04-01 13:43:08:
-----login over
new connection is coming...172.18.0.1
2019-04-01 13:43:13:
2019-04-01 13:43:13:
2019-04-01 13:43:13:
2019-04-01 13:43:13:
-----join over
2019-04-01 13:43:14:
2019-04-01 13:43:14:
2019-04-01 13:43:14:
2019-04-01 13:43:14:
2019-04-01 13:43:14:
2019-04-01 13:43:14:
-----login over
可以看到,两次连接,经过了两轮join/login,但是每次的workerId_$connection->id组合都是一致的,都是0000000045562dda0000000048257f4c_1但是官方文档上说,http://doc.workerman.net/tcp-connection.html,所以,是我使用姿势不对么?请指教。