因为整个的原理很复杂,不过手册写得很清楚。这里只简单的说一下步骤,仔细研究请点击这里手册。
安装依赖
只要是应用,都需要安装包吧
- 首先,请在你的框架或者是你自己造的轮子里的
composer.json
里打上这个。并且composer update
跑一下。
"require": {
"workerman/gateway-worker-for-win" : ">=3.0.0",
"workerman/gatewayclient": "dev-master"
},
复制代码
- 然后下载该官方例子简单的demo, 下载解压这个之后你会看到这个文件
start_for_win.bat
和
Applications
这两个文件丢到你的项目里。基本的文件就都有了。
配置
- 在你的入口文件
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的各种静态方法,就可以完成即时通讯需求啦,细节看文档咯~
谢谢翻阅,多多吐槽~
- 首先,客户端引入