国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請(qǐng)問(wèn)在同一個(gè)網(wǎng)站的多個(gè)頁(yè)面上使用gatewayworker的onclose功能,需要安裝多個(gè)gatewayworker嗎?

bv

請(qǐng)問(wèn),在同一個(gè)網(wǎng)站上,A頁(yè)面和B頁(yè)面,都使用了gatewayworker的onclose功能,
?
比如A頁(yè)面在關(guān)閉后,觸發(fā)了onclose中的a()函數(shù)操作。
B頁(yè)面在關(guān)閉頁(yè)面后,觸發(fā)了onclose中的b()函數(shù)操作。
?
請(qǐng)問(wèn)這種情況下,如何使用switch?case?或者其它方式來(lái)使用同一個(gè)onclose() ?
?
有辦法解決嗎?還是說(shuō),只能再搭建一個(gè)gatewayworker ,然后讓A頁(yè)面和B頁(yè)面分別連接兩個(gè)不同的gatewayworker??那如果這個(gè)網(wǎng)站有A,B,C,D,E.....很多頁(yè)面,每個(gè)頁(yè)面關(guān)閉后觸發(fā)的onclose()操作都不一樣,那是不是需要分別建立N多個(gè)gatewayworker??
?
感謝

2815 2 0
2個(gè)回答

phpcreeper

試圖通過(guò)搭建多個(gè)gatewayworker并不是什么好的方案,不同的頁(yè)面發(fā)起的是不同的連接,考慮從針對(duì)連接的業(yè)務(wù)角度來(lái)區(qū)分就可以,這樣就能對(duì)不同的連接執(zhí)行不同的功能單元。

  • bv 2019-09-05

    感謝回復(fù),沒(méi)有明白如何從連接的角度區(qū)分,我正在研究看看能不能從session中進(jìn)行區(qū)分,連接的話,因?yàn)閛nclose是斷開(kāi)回調(diào),無(wú)論如何連接,在斷開(kāi)的時(shí)候,都是觸發(fā)onclose,無(wú)法進(jìn)行區(qū)分。

  • phpcreeper 2019-09-05

    每個(gè)tcp連接都是一個(gè)單獨(dú)的連接對(duì)象,這樣就可以為每個(gè)連接對(duì)象設(shè)置業(yè)務(wù)屬性,比如唯一UID屬性,據(jù)此就可以區(qū)分執(zhí)行不同的功能單元;
    另外session也可以啊,其實(shí)session也是針對(duì)連接而言的。

  • bv 2019-09-06

    @614:嗯嗯。謝謝。我明白您說(shuō)的意思了,但是感覺(jué)您說(shuō)的靠連接有點(diǎn)難,因?yàn)閛nclose()的觸發(fā)與onmessage()的觸發(fā)不同,您說(shuō)的靠連接區(qū)分,在onmessage()中可以使用,但是在onclose()中,因?yàn)橛|發(fā)onclose()的時(shí)候,連接和心跳都是已經(jīng)斷開(kāi)的狀態(tài)了,再此時(shí),連接的資源信息有點(diǎn)少,uid識(shí)別起來(lái)又有些力不從心。我用session解決了這個(gè)問(wèn)題,感謝您的回復(fù),謝謝。

bv

問(wèn)題已解決。
?
可以使用一個(gè)gatewayworker,來(lái)處理多個(gè)onclose()觸發(fā)。
?
解決方案:
?
我用了\GatewayWorker\Lib\Gateway::setSession?接口,
Gateway::setSession($client_id, $session);通過(guò)setsession接口,在session中存儲(chǔ)一個(gè)行為識(shí)別碼,然后在該用戶斷線后,觸發(fā)onclose的時(shí)候,用switch?case去接收和判斷行為識(shí)別碼,不同的行為識(shí)別碼對(duì)應(yīng)不同的行為執(zhí)行方式。
?
switch($IMS_code){
case "***":
這樣就可以將onclose()的行為處理方式與onmessage()的switch?case處理方式一樣。
?
有幾個(gè)發(fā)現(xiàn)的點(diǎn):
(1)setSession()?來(lái)設(shè)置的session,在服務(wù)器上的session文件中是空白的,但是gatewayworker的onclose卻可以從空白文件中讀取session數(shù)據(jù),這個(gè)比較神奇,如果使用傳統(tǒng)的php語(yǔ)法來(lái)設(shè)置session數(shù)據(jù),在服務(wù)器上是可以看到設(shè)置的數(shù)據(jù)的,但是在onclose中,無(wú)法讀取session數(shù)據(jù),而使用setsession接口來(lái)設(shè)置session數(shù)據(jù),在服務(wù)器上是看不到session數(shù)據(jù)的,但是onclose可以讀取到數(shù)據(jù)。神奇。
?
(2)Gateway::onClose回調(diào)里無(wú)法使用Gateway::getSession來(lái)獲得當(dāng)前用戶的session數(shù)據(jù),但是仍然可以使用$_SESSION變量獲得。
?
多說(shuō)一句,還有很多方法可以解決這個(gè)問(wèn)題,有一個(gè)笨方法,就是把識(shí)別碼寫(xiě)在數(shù)據(jù)庫(kù)中,然后斷開(kāi)連接后,onclose根據(jù)用戶id——uid,去數(shù)據(jù)庫(kù)里找識(shí)別碼。但是這個(gè)方法不如session方便,所以還是用session好了。
?
?

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??