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

GatewayWorker搭建了聊天后怎么公用連接做系統(tǒng)消息推送

sxfenglei

GatewayWorker 如何同時做聊天和系統(tǒng)消息推送
查了文檔和資料發(fā)現(xiàn)大部分都是 GatewayWorker做聊天 web-msg-sender做推送,但是web-msg-sender使用的是phpSocket.io 看了論壇里面說到phpSocket.io能做的GatewayWorker也能做,可是搗騰了3天也沒搞定。
GatewayWorker做了聊天正常聊天 在多寫一個分支用來推送聊天就失效了!也就是說GatewayWorker怎么做系統(tǒng)推送(不使用phpSocket.io的話)。謝謝!

我是這樣做的
1、在Ubuntu上部署了GatewayWorker 局域網(wǎng)IP為
配置 $gateway->lanIp = '192.168.0.110';因為要使用GatewayClient在本地192.168.1.107開發(fā)環(huán)境開發(fā)(基于TP3.2)

----------------------- WORKERMAN -----------------------------
Workerman version:3.3.6          PHP version:7.0.7
------------------------ WORKERS -------------------------------
user          worker                 listen                    processes status
root          YourAppBusinessWorker  none                       4          
root          YourAppGateway         websocket://0.0.0.0:8282   4          
root          Register               text://0.0.0.0:1238        1          
----------------------------------------------------------------
Press Ctrl-C to quit. Start success.

2、在本地window上使用GatewayClient做聊天和系統(tǒng)推送

//TP代碼片段   文件:Chat/test.php
 switch($message) {  
        case 'sendMessage':
         //這里發(fā)送聊天消息內(nèi)容
          break;
        case 'notice':  
         //發(fā)送系統(tǒng)消息  {‘type’:'notice','data':'這一一個系統(tǒng)消息'}
          Gateway::sendToAll($data);  
          break;
         default:
             echo "unknown message $data";
    }

//監(jiān)聽收到的消息
  socket.onmessage = function(e){  
    var data = eval("("+e.data+")");
      console.info(data);
      switch(data){
          // 服務(wù)端ping客戶端 心跳
          case 'ping': 
              socket.send('{"type":"ping"}');
              break; 
          // 登錄 更新用戶列表
          case 'init': 
              $.post('{:U("Chat/bind")}',{client_id:data.client_id},function(data){
                console.log(data);
              });
              break; 
              break;
          // 檢測聊天數(shù)據(jù)
          case 'chatMessage':
            console.log(data.data); 
              break; 
          //通知
          case 'notice':
            $('#content').append(data.data+'<br>');
            console.log(data);
            break;
          default:
              console.error(data);        
      }//switch  
  };// websocket onmessage

  //l聊天
  $('#sendMessage').click(function() {
    var txt = $('#txt').val();
    var login_data = '{"type":"sendMessage","data":"'+txt+'"}';
    console.info(login_data); 
    $.post('{:U("Chat/test")}',{data:login_data},function(data){
      console.log(data);
    });
  }); 

//推送系統(tǒng)消息
  $('#notice').click(function() { 
    var login_data = '{"type":"notice","data":"推送的系統(tǒng)消息"}';
    $.post('{:U("Chat/test")}',{data:login_data},function(data){
      console.log(data);
    }); 
  });
2856 1 0
1個回答

walkor 打賞

GatewayWorker做推送和做聊天通訊流程是一樣的。
從你給的信息中看不出來問題,多打打日志看看吧

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