描述:单机Workerman 开启4个worker子进程且开启端口复用,那么客户端连接的时候。每个客户端都有一个TcpConnection 对象实例,均保存在各自Worker 内存。
疑问一:如果来自多个websocket 客户端,但是他们的连接实例均不在同一进程。不在同一个Worker实例,那么是如何发送消息的嘛?
疑问二:Workerman Epoll write事件,在什么情况下会触发? 复杂的话,能否提供一篇靠谱的文章链接??
在此谢谢了~~-
1、跨进程通信使用官方的分布式channel组件:http://doc.workerman.net/components/channel.html 2、epoll的可写事件触发条件,简单理解就是: LT模式:只要socket内核发送缓冲区未满,就会持续触发可写事件; ET模式:当socket内核发送缓冲区未满时只会触发一次可写事件,只有发送缓冲区满并且再次变为未满时才会再次触发可写事件。
你好,请问 workerman AsyncTcpConnection 类,$this->_socket = \stream_socket_client("tcp://127.0.0.1:8888"$errno, $errstr, 0, \STREAM_CLIENT_ASYNC_CONNECT, $context) ;STREAM_CLIENT_ASYNC_CONNECT 和 STREAM_CLIENT_CONNECT 区别是什么?
谢谢!
workerman epoll 应该就是使用的 LT模式嘛。
@7230: 此贴有回复: https://wenda.workerman.net/question/7471
1、跨进程通信使用官方的分布式channel组件:http://doc.workerman.net/components/channel.html
2、epoll的可写事件触发条件,简单理解就是:
LT模式:只要socket内核发送缓冲区未满,就会持续触发可写事件;
ET模式:当socket内核发送缓冲区未满时只会触发一次可写事件,只有发送缓冲区满并且再次变为未满时才会再次触发可写事件。
你好,请问 workerman AsyncTcpConnection 类,$this->_socket = \stream_socket_client("tcp://127.0.0.1:8888"$errno, $errstr, 0, \STREAM_CLIENT_ASYNC_CONNECT, $context) ;STREAM_CLIENT_ASYNC_CONNECT 和 STREAM_CLIENT_CONNECT 区别是什么?
谢谢!
workerman epoll 应该就是使用的 LT模式嘛。
@7230: 此贴有回复: https://wenda.workerman.net/question/7471