pletfix / websocket-plugin
Pletfix 的 Web Socket 插件
Requires
- php: >=5.6.4
- cboden/ratchet: 0.4.*
- react/zmq: 0.3.*
This package is not auto-updated.
Last update: 2020-01-10 16:47:21 UTC
README
关于此
此插件提供了一种智能的 Web Socket 解决方案。它基于 Ratchet,一个用于构建
Web Socket 服务器 的 PHP 库。
支持的浏览器
- Chrome
- IE 10 及以上版本
- Firefox
- Safari
- Opera
- iOS Safari
- Android 浏览器 4.4 及以上版本
- Android 的 Chrome 浏览器
要求
ZeroMQ 是将消息从 Web 服务器推送到客户端所必需的。
安装
在应用程序目录下运行以下终端命令来获取包
composer require pletfix/websocket-plugin
下载后,在终端中输入此命令来注册插件
php console plugin pletfix/websocket-plugin
配置
默认情况下,TCP 端口 1111 用于 Web Socket,5555 用于推送消息。您可以在应用程序目录下打开配置文件 ./config/websocket.php 并覆盖默认设置,如果您系统上存在端口冲突。
使用方法
启动 Web Socket 服务器
通过 shell 启动 web socket 服务器
php console websocket:serve
当然,您也可以像这样在后台运行进程
php console websocket:serve > /dev/null 2>&1 &
Web Socket 示例
首先,为了能够调用示例,请将以下路由条目添加到 boot/routes.php
$router->get('websocket/chat', 'WebSocketController@chat');
$router->get('websocket/push', 'WebSocketController@push');
注意,这些路由故意没有被注册程序安装,因为它们只是为了示例而需要的。不要忘记在不再需要示例时删除这些路由。
通过浏览器调用示例(最好使用两个,以便可以来回发送消息 :-)
https://<your-application>/websocket/chat
您可以使用此 URL 从 Web 服务器将当前时间推送到客户端
https://<your-application>/websocket/push
Web Socket 服务
您可以使用 websocket() 函数从 Web 服务器将消息推送到 Web Socket 服务器
websocket()->push('Hello World');
自定义
Web Socket 服务器
要向您的 web socket 添加自己的行为,请创建一个实现接口 Pletfix\WebSocket\Handler\Contracts\WebSocketHandler 的 web socket 处理器。处理器的良好位置是 app/Handler 文件夹。
为了快速入门,请查看示例 vendor/pletfix/websocket-plugin/src/Handler/WebSocketHandler.php。
然后,将 "websocket-handler" 条目添加到 boot/services.php 中以将您的处理器注入依赖容器。例如,如果您的处理器类的名称为 \App\Handler\WebSocketHandler,请添加以下条目
$di->set('websocket-handler', \App\Handler\WebSocketHandler::class, true);
Web Socket 客户端
将视图 vendor/pletfix/websocket-plugin/views/chat.blade.php 复制到 resources/view/websocket/chat.blade.php,您可以在那里按需修改视图。

