php websocket推送 指定用户,[Websocket]如何向指定终端发送消息?

我启动了一个websocket服务(websocket协议),然后打开了浏览器,打开了两个浏览器标签页与其建立连接(通过js原生的Websocket对象),然而,实际上我发现connections只有一个,这导致我无法向指定的标签页发送信息。

请问,如何向指定的客户端发送信息?

----------------------------分割线----------------------------

我是按照如下方式发现多个标签页用的是同一个connection的。

首先,在join或login时打印workerId和$connection->id拼成的字符串(logEvent是我自定义的日志输出函数)

9a224ad1e24472dcdf60aefa564aaa70.png

d699b66ee763fd888e3bb5c40619be51.png

然后,打开两个浏览器标签页各自建立连接

c7985be6e1f6d46ea58d21786ff688ed.png

465856e56e1d4dd5c131dc35a422837f.png

最后,查看服务端日志信息

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,所以,是我使用姿势不对么?请指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值