Open msmhlu opened 5 years ago
贴一下如何配置的,以及客户端如何使用的简单代码
同问 版本swoft2.0, bean.php的ws配置
'wsServer' => [
'class' => WebSocketServer::class,
'port' => 9088,
'on' => [
// Enable http handle
SwooleEvent::REQUEST => bean(RequestListener::class),
],
'debug' => env('SWOFT_DEBUG', 0),
// 'debug' => env('SWOFT_DEBUG', 0),
/* @see WebSocketServer::$setting */
'setting' => [
'log_file' => alias('@runtime/swoole.log'),
'worker_num' => env('WORKER_NUM', 1),
'max_request' => env('MAX_REQUEST', 10000),
'daemonize' => env('DAEMONIZE', 0),
'dispatch_mode' => env('DISPATCH_MODE', 2),
'package_max_length' => env('PACKAGE_MAX_LENGTH', 2048),
'upload_tmp_dir' => env('UPLOAD_TMP_DIR', '@runtime/uploadfiles'),
'task_ipc_mode' => env('TASK_IPC_MODE', 1),
'message_queue_key' => env('MESSAGE_QUEUE_KEY', 0x70001001),
'open_http2_protocol' => env('OPEN_HTTP2_PROTOCOL', false),
'ssl_cert_file' => env('SSL_CERT_FILE', ''),
'ssl_key_file' => env('SSL_KEY_FILE', ''),
],
],
.env也加上了
OPEN_HTTP2_PROTOCOL=true
SSL_CERT_FILE=相应的证书地址
SSL_CERT_FILE=相应的证书地址
客户端连接报错,SSL错误
Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
@FromChinaBoy @msmhlu
参考https的配置 https://swoft.org/docs/2.x/zh-CN/http-server/setting.html#%E5%90%AF%E7%94%A8https%E6%94%AF%E6%8C%81
需要设置 'type' => SWOOLE_SOCK_TCP | SWOOLE_SSL
再试试看呢?
@inhere 我的可行,感谢大佬
@inhere http配置 : ws 配置: 启动:
有点尴尬,尝试几次之后,现在通过websocket开启的http不能正常使用了。 原由:我的测试服务器(阿里云的),cpu100%了,我重启之后就出现了。 这种情况。感觉Swoft有些缓存文件是否要深入到重启运行服务的环境,单纯的重启或者reload 服务无限无效。比如 http:restart。有次我连访问的控制器文件都删除了,浏览器做了缓存清除,依然可以访问。后面干脆重器linux服务。
@msmhlu restart 总是会生效的
至于文件被删除,这个不可能吧。。。
@msmhlu 你这配置有问题,你看下 ws server 配置那块的文档,如何同时开启http
@inhere 感谢大佬。 配置在尝试中实际早已经实现成功,不过我在反复修改时曾将默认18308更为了13808。低级错误在此出现。 目前已经实现了,从ws server启动实现https。
已配置ssl。开启http服务能正确使用https:访问。使用websocket服务,访问时使用https,无法房问只能用http,且在JavaScript中连接wss是报错的。