使用了GatewayWorker,外部php程序需要向指定的客户端发送消息,看了手册中的方法,采用的第一种方式在外部php程序中使用Gatewayclient发送给客户端消息,但对应的客户端那边收到了重复的两条消息,不知这个是什么情况? 该怎么解决呢?
Gatewayclient没问题。 你可以在调用Gatewayclient的地方打印日志看下是不是调用了两次,比如调用了sendToAll又调用了sendToClient
我试了两个客户端连接上去,调用sendtoUid 分别向两个客户端发送消息,他们都各自收到了发向自己的两条重复的,所以应该不是我外部调用了两次。 我看了Gatewayclient里的sendToUid,里面调用的是sendToAllGateway,这里面走的是else分支是吧,获取GLOBAL_GATEWAY_ADDRESS里的 all_address,然后发送,在这里我看了registerAddress到GLOBAL_GATEWAY_ADDRESS里的有两个重复的地址,这个是怎么添加进去的呢?
比如 当我一个客户端连接上去时 GLOBAL_GATEWAY_ADDRESS里存储的是这样的a:1:{s:14:"127.0.0.1:3001";s:14:"127.0.0.1:3001";} 这样正常吗?
那个不是重复,key和value是一样的,数据格式类似是 array( '127.0.0.1:3001'=>'127.0.0.1:3001', 127.0.0.1:3002'=>'127.0.0.1:3002', ... ) 这样的格式。序列化后就那样
本地测试 sendToUid sendToAll sendToUid 都不会重复 你再debug检查下吧
恩 谢谢 昨天检查了,还是没找到原因,今天我再试试
我试了下载新的gatewayworker,然后再用gatewayclient由php向gatewayworker客户端发送消息,还是会收到两条重复的数据,使用的是最新的demo代码,walkor能否帮忙看下我这个demo中为何会收到两条消息呢,我的邮箱是645599188@qq.com. 方便的话你给我发个邮件我把我的这个demo例子回发给你,可以么?
是本身使用了gatewayworker框架,就不能在外部php中再使用gatewayclient了么?
问题解决了,是我本地浏览器中的插件导致,刷新一次时会提交两次请求,测试demo时使用的浏览器测试的,错误的以为gatawayclient发送重复了,在此感谢walkor的提醒,gatawayclient使用没有问题。
Gatewayclient没问题。
你可以在调用Gatewayclient的地方打印日志看下是不是调用了两次,比如调用了sendToAll又调用了sendToClient
我试了两个客户端连接上去,调用sendtoUid 分别向两个客户端发送消息,他们都各自收到了发向自己的两条重复的,所以应该不是我外部调用了两次。
我看了Gatewayclient里的sendToUid,里面调用的是sendToAllGateway,这里面走的是else分支是吧,获取GLOBAL_GATEWAY_ADDRESS里的 all_address,然后发送,在这里我看了registerAddress到GLOBAL_GATEWAY_ADDRESS里的有两个重复的地址,这个是怎么添加进去的呢?
比如 当我一个客户端连接上去时 GLOBAL_GATEWAY_ADDRESS里存储的是这样的a:1:{s:14:"127.0.0.1:3001";s:14:"127.0.0.1:3001";} 这样正常吗?
那个不是重复,key和value是一样的,数据格式类似是
array(
'127.0.0.1:3001'=>'127.0.0.1:3001',
127.0.0.1:3002'=>'127.0.0.1:3002',
...
)
这样的格式。序列化后就那样
本地测试 sendToUid sendToAll sendToUid 都不会重复
你再debug检查下吧
恩 谢谢 昨天检查了,还是没找到原因,今天我再试试
我试了下载新的gatewayworker,然后再用gatewayclient由php向gatewayworker客户端发送消息,还是会收到两条重复的数据,使用的是最新的demo代码,walkor能否帮忙看下我这个demo中为何会收到两条消息呢,我的邮箱是645599188@qq.com. 方便的话你给我发个邮件我把我的这个demo例子回发给你,可以么?
是本身使用了gatewayworker框架,就不能在外部php中再使用gatewayclient了么?
问题解决了,是我本地浏览器中的插件导致,刷新一次时会提交两次请求,测试demo时使用的浏览器测试的,错误的以为gatawayclient发送重复了,在此感谢walkor的提醒,gatawayclient使用没有问题。