pletfix/websocket-plugin

Pletfix 的 Web Socket 插件

dev-master 2017-10-14 23:00 UTC

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 服务器

Screenshot Server

通过 shell 启动 web socket 服务器

php console websocket:serve

当然,您也可以像这样在后台运行进程

php console websocket:serve > /dev/null 2>&1 &

Web Socket 示例

Screenshot Example

首先,为了能够调用示例,请将以下路由条目添加到 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,您可以在那里按需修改视图。