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

Gateway默認不支持http的問題。

banice

手冊上寫Gateway是不支持http協(xié)議的??刹豢勺约涸趃ateway的portocols下建一個類繼承自Worker去實現(xiàn)http協(xié)議,最后注冊到register的worker上?
或者還有別的什么解決方法?

我自己試了在創(chuàng)建一個基于http協(xié)議的gateway不同的端口,然后按端口處理業(yè)務,但是我收不到http請求的數(shù)據,可以發(fā)送數(shù)據,但是get和post的數(shù)據都收不到。

手冊上是用gateway client去訪問gateway的端口。上面的方法可不可行?

5290 1 0
1個回答

walkor 打賞

Gateway本身是支持http協(xié)議的,只是不建議使用。初始化Gateway 的時候指定http協(xié)議即可。
類似new Gateway('http://0.0.0.0:8080')

為什么不建議Gateway里使用http協(xié)議?
http 是請求響應式的,只有客戶端發(fā)送了請求,服務端才能響應。
所以當一個http鏈接沒有發(fā)來請求前,服務端直接向這個鏈接發(fā)送數(shù)據是無效的。
如果客戶端發(fā)來請求,服務端進行了回應,在這個客戶端沒有再次發(fā)送請求前,服務端向其發(fā)送的數(shù)據都是無效的。
也就如果用http協(xié)議,服務端很難做到隨時向客戶端推送數(shù)據,除非是長輪詢。

Gateway更適合實時雙向通訊的,Gateway可以任意時刻向客戶端推送數(shù)據,http協(xié)議放到Gateway上用并不合適。

即時使用http協(xié)議,Gateway里面也不是用$_POST $_GET來獲取數(shù)據,Gateway數(shù)據都是統(tǒng)一通過onMessage的參數(shù)傳遞進去的,http協(xié)議也是一樣。

public static function onMessage($client_id, $data) {
    // 這里是客戶端發(fā)來的數(shù)據,包括get post server cookie 等數(shù)據
    var_dump($data);
}

最后不建議在Gateway里使用http協(xié)議,除非你對http機制很熟悉。

  • banice 2017-04-15

    嗯,我用文檔里的GatewayClient實現(xiàn)了對下位機的控制,但是Client只是共享了Gateway的數(shù)據。我能在Client里單獨設置心跳之類的嗎?我通過Client發(fā)送命令給下位機,但是如果下位機并未收到命令,也就是不會做任何的響應,這時候client要怎么判斷自己到底有沒有發(fā)送成功?

    我現(xiàn)在的想法是為每個下位機的session里通過各種下位機的狀態(tài)和命令狀態(tài)來做判斷。還是在Client里做定時器?但是文檔里Client好像是只能調用Gateway的函數(shù)。

  • walkor 2017-04-17

    發(fā)送前可以通過onLine接口判斷客戶端是否在線。在線的可以基本認為數(shù)據可以發(fā)送成功。
    最保險的機制是每次發(fā)送數(shù)據寫一條記錄到數(shù)據庫,有個字段標記消息未讀??蛻舳耸盏较⒑蠼o服務端一個反饋,服務端收到反饋標記對應消息已讀。

年代過于久遠,無法發(fā)表回答
??