同題,同時2.0如何升級到3.0
2.x 和 3.x架構(gòu)上沒有差異
主要是workerman內(nèi)核部分重新寫了,目錄結(jié)構(gòu)有變動
Gateway/Worker的所有接口沒有變動,Gatway/Worker協(xié)議處理上有變動,原來2.x是需要在Worker進(jìn)程中的Event.php中解析協(xié)議,3.x統(tǒng)一由Gateway進(jìn)程解析協(xié)議,然后傳遞解析好的數(shù)據(jù)給Event.php,業(yè)務(wù)不在關(guān)心協(xié)議打包解包問題
2.x開發(fā)的項目一般不用考慮升級到3.x。
新項目開發(fā)可以考慮3.x,因為開發(fā)起來更簡單,具體開發(fā)流程看參考3.x手冊
http://doc3.workerman.net/index.html
workerman 老大, 有個問題我不大明白。
在3.0上,手冊上說基于Worker方式不能實現(xiàn)客戶端和客戶端之間通信;而基于Gateway/Worker是可以實現(xiàn)客戶端之間通信。
這里所謂的客戶端通訊,我理解就是在Gateway/Worker上,一個客戶端先發(fā)消息給服務(wù)端,然后服務(wù)端再響應(yīng)的發(fā)送給另外一個客戶端,或則全部連接上的客戶端。對嗎??
如果是這樣,那么Woker方式,不是也可以把所有已經(jīng)連接上的Connection都保存起來(Array),然后在需要的時候,通過遍歷這個Array做分發(fā)? 這不是也算客戶端通訊??
謝謝
這里所謂的客戶端通訊,我理解就是在Gateway/Worker上,一個客戶端先發(fā)消息給服務(wù)端,然后服務(wù)端再響應(yīng)的發(fā)送給另外一個客戶端,或則全部連接上的客戶端。對嗎??
對的
如果是這樣,那么Woker方式,不是也可以把所有已經(jīng)連接上的Connection都保存起來(Array),然后在需要的時候,通過遍歷這個Array做分發(fā)? 這不是也算客戶端通訊??
單進(jìn)程是可以這樣做的(見手冊的小例子:http://doc3.workerman.net/development/process.html),但是多進(jìn)程的話,比如客戶端A連的是進(jìn)程1,客戶端B連的是進(jìn)程2,當(dāng)A要通過Worker給B發(fā)送數(shù)據(jù)時,A只能發(fā)給Worker進(jìn)程1,但是Worker進(jìn)程1卻無法發(fā)給B連接,因為B連接是屬于Worker進(jìn)程2的