GatewayWorker融入thinkphp5

1.下载框架https://www.workerman.net/download

2.整个放入vendor中

3.修改Applications/YourApp/start_gateway.php中tcp改成WebSocket加上你的域名和端口
$gateway = new Gateway("WebSocket://127.1.1.1:8282");

4.启动GatewayWorker/start_for_win.bat,需要配置php环境变量, 计算机->属性->高级系统设置->添加变量,名:PATH,值:(D:\myphp_www\PHPTutorial\php\php-5.4.45)

5.操作Applications/YourApp/Events.php,基本后期都是操作这里

6.前端随便访问一个页面加入下面的JS

<script type="text/javascript">
        var ws = new WebSocket("ws://120.xx.xx.xx:8282");       
        ws.onmessage = function(e){  
            var data = eval("("+e.data+")");                
            console.log(data);
            if(data.type == 1){     //服务端请求身份
                var info = '{"type":"1","uid":"2"}';
                ws.send(info); 
            }
        }
</script>

7.系统自带的$client_id页面关闭后会回收所以不适合使用,用bindUid和sendToUid解决问题http://doc2.workerman.net/bind-uid.html

   /**
    * 当客户端发来消息时触发
    * @param int $client_id 连接id
    * @param mixed $message 具体消息
    */
   public static function onMessage($client_id, $message)
   {
        $info = json_decode($message,true);

        //客户端身份回复
        if($info['type'] == 1){   
            Gateway::bindUid($client_id,$info['uid']);  //绑定身份2为客户,1位客服端    {"type":"1","uid":"1"}
        }
        
        if($info['type'] == 2){   
            $infos = array('type'=>'2','msg'=>$info['msg']);
            Gateway::sendToUid(1,json_encode($infos));  //客户提交数据,服务器通知客服
        }

   }

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值