描述:?jiǎn)螜C(jī)Workerman 開啟4個(gè)worker子進(jìn)程且開啟端口復(fù)用,那么客戶端連接的時(shí)候。每個(gè)客戶端都有一個(gè)TcpConnection 對(duì)象實(shí)例,均保存在各自Worker 內(nèi)存。
疑問(wèn)一:如果來(lái)自多個(gè)websocket 客戶端,但是他們的連接實(shí)例均不在同一進(jìn)程。不在同一個(gè)Worker實(shí)例,那么是如何發(fā)送消息的嘛?
疑問(wèn)二:Workerman Epoll write事件,在什么情況下會(huì)觸發(fā)?
復(fù)雜的話,能否提供一篇靠譜的文章鏈接??
在此謝謝了~~-
1、跨進(jìn)程通信使用官方的分布式channel組件:http://doc.workerman.net/components/channel.html
2、epoll的可寫事件觸發(fā)條件,簡(jiǎn)單理解就是:
LT模式:只要socket內(nèi)核發(fā)送緩沖區(qū)未滿,就會(huì)持續(xù)觸發(fā)可寫事件;
ET模式:當(dāng)socket內(nèi)核發(fā)送緩沖區(qū)未滿時(shí)只會(huì)觸發(fā)一次可寫事件,只有發(fā)送緩沖區(qū)滿并且再次變?yōu)槲礉M時(shí)才會(huì)再次觸發(fā)可寫事件。
你好,請(qǐng)問(wèn) 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 區(qū)別是什么?
謝謝!