Gateway实现即时消息传输

因为整个的原理很复杂,不过手册写得很清楚。这里只简单的说一下步骤,仔细研究请点击这里手册

安装依赖

只要是应用,都需要安装包吧

  • 首先,请在你的框架或者是你自己造的轮子里的composer.json里打上这个。并且composer update跑一下。
"require": {
        "workerman/gateway-worker-for-win" : ">=3.0.0",
        "workerman/gatewayclient": "dev-master"
    },
复制代码
  • 然后下载该官方例子简单的demo, 下载解压这个之后你会看到这个文件

然后把 start_for_win.batApplications这两个文件丢到你的项目里。基本的文件就都有了。

配置

  • 在你的入口文件index.php找到将依赖里的将它引入require进来。
  • 再将start_gateway.php的这个文件里的$gateway = new Gateway("tcp://0.0.0.0:8282");改成$gateway = new Gateway("websocket://0.0.0.0:8282");如下图:

  • 注意上图代码最后一行的服务注册地址$gateway->registerAddress='127.0.0.1:1238' 你一定要保证所有的Gateway、BusinessWorker进程都是依赖于Register。所以一定要保证端口号相同哦。

运行

  • 首先,将服务开启,如果是在windows系统上,将start_for_win.bat双击开启,如果能看到三个进程启动,说明成功。如果看到“按任意键继续...”说明失败。

  • 然后,就可以按照常规的mvc套路玩了,整个流程的思路是

    • 首先,客户端引入socket.io插件,然后连接var ws = new WebSocket("ws://127.0.0.1:8282");,并通过
    ws.onmessage = function(e) {
        console.log(e.data) //打印后台传输的数据
    }
    复制代码

    可以一直进行监听并获取后台传输的数据。

    • 当然,为了定位到每个数据传输的位置,开始都会有接收client_id,需要将它传到后台对应的方法里,进行与当前用户进行绑定。
    • 然后使用Gateway的各种静态方法,就可以完成即时通讯需求啦,细节看文档咯~

    谢谢翻阅,多多吐槽~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值