Workerman

开源高性能PHP应用容器

workerman是一款开源高性能PHP应用容器,它大大突破了传统PHP应用范围,被广泛的用于互联网、即时通讯、APP开发、硬件通讯、智能家居、物联网等领域的开发。

PHPSocket.io

PHP版本的socket.io,具有良好的客户端兼容性,常用于即时通讯领域

 

Linux系统快速开始(从一个精简的聊天demo开始)

1、下载demo官方网下载

2、命令行运行 unzip GatewayWorker.zip 解压缩GatewayWorker.zip

3、命令行运行 cd GatewayWorker 进入GatewayWorker目录

4、命令行运行 php start.php start 启动GatewayWorker

 

已启动状态

放行端口 

 

​​​​​​与ThinkPHP等框架结合

使用GatewayWorker时开发者最关心的是如何与现有mvc框架(ThinkPHP Yii laravel等)整合,以下是官方推荐的整合方式。见示意图:

总体原则:

现有mvc框架项目与GatewayWorker独立部署互不干扰

所有的业务逻辑都由网站页面post/get到mvc框架中完成

GatewayWorker不接受客户端发来的数据,即GatewayWorker不处理任何业务逻辑,GatewayWorker仅仅当做一个单向的推送通道

仅当mvc框架需要向浏览器主动推送数据时才在mvc框架中调用Gateway的API GatewayClient完成推送。

GatewayClient安装

参考地址 GitHub - walkor/GatewayClient: Sdk For GatewayWorker

具体实现步骤

1、网站页面建立与GatewayWorker的websocket连接

2、GatewayWorker发现有页面发起连接时,将对应连接的client_id发给网站页面

3、网站页面收到client_id后触发一个ajax请求(假设是bind.php)将client_id发到mvc后端

4、mvc后端bind.php收到client_id后利用GatewayClient调用Gateway::bindUid($client_id, $uid)将client_id与当前uid(用户id或者客户端唯一标识)绑定。如果有群组、群发功能,也可以利用Gateway::joinGroup($client_id, $group_id)

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: