mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-11-30 02:37:58 +08:00
docs: update webscoket server (#2205)
* docs: update webscoket server * Update FindDriver.php Co-authored-by: 李铭昕 <715557344@qq.com>
This commit is contained in:
parent
862a0a824e
commit
73b3647262
@ -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
|
||||
|
||||
|
@ -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 与协程上下文完全一样。
|
||||
|
@ -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'];
|
||||
|
Loading…
Reference in New Issue
Block a user