Package Data | |
---|---|
Maintainer Username: | wan3574489 |
Maintainer Contact: | 907515459@qq.com (W+) |
Package Create Date: | 2017-06-11 |
Package Last Update: | 2018-11-22 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-26 15:08:17 |
Package Statistics | |
---|---|
Total Downloads: | 133 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 35 |
Total Watchers: | 3 |
Total Forks: | 6 |
Total Open Issues: | 0 |
基于 laravel + swoole +redis的WebSocket开发库。适合开发中小型webSocket程序。
无需关注webSocket的细节,专注业务。
可同步、异步处理请求,发送数据。
安装laravel.
添加websocket库: composer require lactone/laravel-websocket
添加laravel command类,继承 webSocket\Commands\WebSocketCommand.
在目录/demo/laravel中是一个简单的Demo程序。
App\Console\Commands\ChatWebSocketCommand.php 负责绑定启动命令、设置websocket的配置和绑定webSocket处理程序。
App\Server\Chat\ChatHandle.php 负责处理ws业务。当用户发送消息:{type:$type,data:$data}给服务器的时候,系统会自动调用message_$type方法。
public/js/push.js 客户端发送消息程序
当客户端与服务端建立webSocket连接后,服务端会生成一个fd,该fd表示当前链接,通过该fd服务端可以发送消息给客户端。
客户端发送给服务端结构如下:{type:type,data:data}
其中如果type为login,服务端接受程序信息后会调用message_login方法,处理信息。
PushService::pushToAllAsync($data) 发送信息给所有客户端
PushService::pushToFdAsync($fd,$data) 发送消息给某个客户端
PushService::pushToAllOutMeAsync($fd,$data) 发送消息给除开fd的其他客户端
PushService::getAllFdsFromStore() 获取所有在线的链接标识
PushService::isLive($fd) 客户端是否在线
PushService::success($action,$message = array()) 反馈成功的数据结构
PushService::error($action,$message = array()) 反馈失败的数据结构