好像建立的各个worker之间没办法传递数据,求解
1、对于单进程模型,设置一个类属性就可以了; 2、对于多进程模型,可以使用官方组件globalData组件,或者第三方的redis组件;
我记得websocket有向指定id发送的函数。
@5146:额,楼主问的进程内或进程间的数据通信问题,你这个是啥呢?
@614:能不能回答一下我的提问,大哥,心累啊
@5146: 已经回复你了,参考下吧。
我定义了类属性,并在异步连接成功后把对象保存类属性,然后在onmessage里调用类属性也就是异步的链接去send数据,却send不出去,这是哪里出了问题
你这样使用, onMessage里第一次并没有保存到 uidConnections对象,第一次会发送失败的。
把 else 那段逻辑到放到 onMessage 外边去,也就是挪到 $inner->....->listen()代码后面,然后在判断保存连接对象。
@614:保存到了,我打印出来了,却无法send
@614:放到外边就没办法use这个$inner链接接收到的数据
@5144:可以 send 啊,为什么我可以send ?
@5144:同样也不明白为啥你说使用不到 $inner链接接收到的数据
@614:我也不知道,他就走到这个send,php控制器那边就超时了
@614:异步连接不是写在onmessage回调吗,这样他就可以直接使用onmessage的回调参数,使用inner这个链接再去做坏事
@5144:超时可能是你异步连接的服务器有问题
@5144:异步连接逻辑写在onmessage回调里也可以,但是得先保存异步连接对象,然后再发送,否则第一次接收到的消息肯定无法发送。
@614:服务器应该没问题,在异步里面connect连接时发送数据后onmessage可以收到 服务器返回的数据,但是异步对象保存到类属性后,再调用去send就超时了,应该就没send出去
@5144: 具体报告什么超时?说服务器应该没问题是你自己感觉没问题呢还是测试确认过没有问题?
@614:查了一遍服务器,确实是服务器问题,太尴尬了,太感谢你了
@5144: 不客气
这样
用channel组件可以做到worker间通讯
不考虑组件的情况下可以完成吗,目前就send这一步了,异步对象也被保存了
1、对于单进程模型,设置一个类属性就可以了;
2、对于多进程模型,可以使用官方组件globalData组件,或者第三方的redis组件;
我记得websocket有向指定id发送的函数。
@5146:额,楼主问的进程内或进程间的数据通信问题,你这个是啥呢?
@614:能不能回答一下我的提问,大哥,心累啊
@5146: 已经回复你了,参考下吧。
我定义了类属性,并在异步连接成功后把对象保存类属性,然后在onmessage里调用类属性也就是异步的链接去send数据,却send不出去,这是哪里出了问题
你这样使用, onMessage里第一次并没有保存到 uidConnections对象,第一次会发送失败的。
把 else 那段逻辑到放到 onMessage 外边去,也就是挪到 $inner->....->listen()代码后面,然后在判断保存连接对象。
@614:保存到了,我打印出来了,却无法send
@614:放到外边就没办法use这个$inner链接接收到的数据
@5144:可以 send 啊,为什么我可以send ?
@5144:同样也不明白为啥你说使用不到 $inner链接接收到的数据
@614:我也不知道,他就走到这个send,php控制器那边就超时了
@614:异步连接不是写在onmessage回调吗,这样他就可以直接使用onmessage的回调参数,使用inner这个链接再去做坏事
@5144:超时可能是你异步连接的服务器有问题
@5144:异步连接逻辑写在onmessage回调里也可以,但是得先保存异步连接对象,然后再发送,否则第一次接收到的消息肯定无法发送。
@614:服务器应该没问题,在异步里面connect连接时发送数据后onmessage可以收到 服务器返回的数据,但是异步对象保存到类属性后,再调用去send就超时了,应该就没send出去
@5144: 具体报告什么超时?说服务器应该没问题是你自己感觉没问题呢还是测试确认过没有问题?
@614:查了一遍服务器,确实是服务器问题,太尴尬了,太感谢你了
@5144: 不客气
这样
用channel组件可以做到worker间通讯
不考虑组件的情况下可以完成吗,目前就send这一步了,异步对象也被保存了