Gateway实现即时消息传输

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

安装依赖

只要是应用,都须要安装包吧php

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

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

配置

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

start_gateway.php代码

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

运行

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

  • 而后,就能够按照常规的mvc套路玩了,整个流程的思路是
    web

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

    能够一直进行监听并获取后台传输的数据。json

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

    谢谢翻阅,多多吐槽~windows

相关文章
相关标签/搜索