docs: update webscoket server (#2205)

* docs: update webscoket server

* Update FindDriver.php

Co-authored-by: 李铭昕 <715557344@qq.com>
This commit is contained in:
沈唁 2020-07-29 18:37:33 +08:00 committed by GitHub
parent 862a0a824e
commit 73b3647262
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 6 deletions

View File

@ -68,7 +68,7 @@ return [
如需要设置守护进程化,可在 `settings` 中增加 `'daemonize' => 1`,执行 `php bin/hyperf.php start`后,程序将转入后台作为守护进程运行
单独的 Server 配置需要添加在对应 `servers``settings` 当中,如 `jsonrpc` 协议的 TCP Server 配置启用 EOF 自动分包和设置 EOF 字符串
单独的 Server 配置需要添加在对应 `servers``settings` 当中,如 `jsonrpc` 协议的 TCP Server 配置启用 EOF 自动分包和设置 EOF 字符串
```php
<?php

View File

@ -80,7 +80,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
}
```
接下来启动 Server便能看到对应启动了一个 WebSocket Server 并监听于 9502 端口,此时您便可以通过各种 WebSocket Client 来进行连接和进行数据传输了。
接下来启动 Server便能看到对应启动了一个 WebSocket Server 并监听于 9502 端口,此时您便可以通过各种 WebSocket Client 来进行连接和数据传输了。
```
$ php bin/hyperf.php start
@ -90,6 +90,34 @@ $ php bin/hyperf.php start
[INFO] HTTP Server listening at 0.0.0.0:9501
```
!> 当我们同时监听了 HTTP Server 的 9501 端口和 WebSocket Server 的 9502 端口时, WebSocket Client 可以通过 9501 和 9502 两个端口连接 WebSocket Server即连接 `ws://0.0.0.0:9502``ws://0.0.0.0:9502` 都可以成功。
因为 Swoole\WebSocket\Server 继承自 Swoole\Http\Server可以使用 HTTP 触发所有 WebSocket 的推送,了解详情可查看 [Swoole 文档](https://wiki.swoole.com/#/websocket_server?id=websocketserver) onRequest 回调部分。
如需关闭,可以修改 `config/autoload/server.php` 文件给 `http` 服务中增加 `open_websocket_protocol` 配置项。
```php
<?php
return [
// 这里省略了该文件的其它配置
'servers' => [
[
'name' => 'http',
'type' => Server::SERVER_HTTP,
'host' => '0.0.0.0',
'port' => 9501,
'sock_type' => SWOOLE_SOCK_TCP,
'callbacks' => [
SwooleEvent::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'],
],
'settings' => [
'open_websocket_protocol' => false,
]
],
]
];
```
## 连接上下文
WebSocket 服务的 onOpen, onMessage, onClose 回调并不在同一个协程下触发因此不能直接使用协程上下文存储状态信息。WebSocket Server 组件提供了 **连接级** 的上下文API 与协程上下文完全一样。

View File

@ -70,10 +70,6 @@ class FindDriver implements DriverInterface
{
$changedFiles = [];
$dest = implode(' ', $targets);
/**
* In linux system, you can use command below
* find app -mmin -0.05 -type f -printf "%p %T+\n"
*/
$ret = System::exec($this->getBin() . ' ' . $dest . ' -mmin ' . $minutes . ' -type f -printf "%p %T+' . PHP_EOL . '"');
if ($ret['code'] === 0 && strlen($ret['output'])) {
$stdout = $ret['output'];