在客户端连接后定时发送数据问题

h0r1z0n

请教几个问题
我使用的是最新下载的2.0 gateway worker版本
在Applications\XXX\Event.php写入代码
我想在客户端onConnect后,发送一次命令获取uid,然后使用绑定想这个客户端定时发送数据,定时发送的命令基本是一样的。最后在onMessage接收处理。

1.是使用while循环还有sleep定时发送数据还是使用定时器Timer?这两种效果一样吗?

使用定时器在timer中发送数据Gateway::sendToCurrentClient('READ ID'); 为什么接收不到?
如果定时发送的数据太快,客户端在接收命令后会一次执行吗,会不会引起什么后果?

4185 1 0
1个回答

walkor 打赏

1、使用Timer。不能使用while循环还有sleep,会导致这个进程无法接收处理其它请求,也就是无法触发onMessage。

2、定时器是异步的,sendToCurrentClient是向当前用户发送数据,异步环境无法知道当前的用户是谁,所以无法发送。使用sendToClient发送指定client_id即可,定时器是可以指定参数的,手册中有很多定时器的例子可以参考下

3、速度太快,客户端是否一次全部执行主要看客户端是怎么实现的,后果也和业务有关,不能一概而论

  • 暂无评论
年代过于久远,无法发表回答
×
🔝