首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
websocket服务,ssl时报错
执行命令 {{{ php --ri swoole }}} 结果如下 {{{ swoole swoole support => enabled Version => 2.0.12 Author => tianfeng.han[email: mikan.tenny@gmail.com] epoll => enabled eventfd => enabled timerfd => enabled signalfd => enabled cpu affinity => enabled spinlock => enabled rwlock => enabled async http/websocket client => enabled Linux Native AIO => enabled pcre => enabled zlib => enabled mutex_timedlock => enabled pthread_barrier => enabled futex => enabled Directive => Local Value => Master Value swoole.aio_thread_num => 2 => 2 swoole.display_errors => On => On swoole.use_namespace => On => On swoole.fast_serialize => Off => Off swoole.unixsock_buffer_size => 8388608 => 8388608 }}} 启动一个websocket服务,代码是从源码粘贴过来的案例,将证书改为了我在阿里云申请的域名ssl证书,如下 {{{ $ssl_dir = realpath('/etc/nginx'); $serv = new \swoole_websocket_server("0.0.0.0", 9502, SWOOLE_BASE, SWOOLE_SOCK_TCP | SWOOLE_SSL); //$serv = new \swoole_websocket_server("0.0.0.0", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $serv->set([ 'ssl_cert_file' => $ssl_dir . '/cert/21567/0567.pem', 'ssl_key_file' => $ssl_dir . '/cert/21567/0567.key', 'worker_num' => 1, ]); $port = $serv->listen('127.0.0.1', 9501, SWOOLE_SOCK_TCP); $port->on('receive', function($serv, $fd, $reactor_id, $data){ var_dump($fd, $reactor_id, $data); $serv->send($fd, "Swoole: $data"); }); $serv->on('connect', function ($_server, $fd) { echo "client {$fd} connect\n"; }); $serv->on('open', function (\swoole_websocket_server $_server, swoole_http_request $request) { echo "server#{$_server->worker_pid}: handshake success with fd#{$request->fd}\n"; // var_dump($request); }); ... }}} 启动服务,总是报错如下: {{{ Use of undefined constant SWOOLE_SSL - assumed 'SWOOLE_SSL' }}} 请求指点,这是哪里出错了?感激不尽。
发布于5年前 · 0 次浏览 · 来自
提问
新
新用户(手机注册)
执行命令 {{{ php --ri swoole }}} 结果如下 {{{ swoole swoole support => enabled Version => 2.0.12 Author => tianfeng.han[email: mikan.tenny@gmail.com] epoll => enabled eventfd => enabled timerfd => enabled signalfd => enabled cpu affinity => enabled spinlock => enabled rwlock => enabled async http/websocket client => enabled Linux Native AIO => enabled pcre => enabled zlib => enabled mutex_timedlock => enabled pthread_barrier => enabled futex => enabled Directive => Local Value => Master Value swoole.aio_thread_num => 2 => 2 swoole.display_errors => On => On swoole.use_namespace => On => On swoole.fast_serialize => Off => Off swoole.unixsock_buffer_size => 8388608 => 8388608 }}} 启动一个websocket服务,代码是从源码粘贴过来的案例,将证书改为了我在阿里云申请的域名ssl证书,如下 {{{ $ssl_dir = realpath('/etc/nginx'); $serv = new \swoole_websocket_server("0.0.0.0", 9502, SWOOLE_BASE, SWOOLE_SOCK_TCP | SWOOLE_SSL); //$serv = new \swoole_websocket_server("0.0.0.0", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $serv->set([ 'ssl_cert_file' => $ssl_dir . '/cert/21567/0567.pem', 'ssl_key_file' => $ssl_dir . '/cert/21567/0567.key', 'worker_num' => 1, ]); $port = $serv->listen('127.0.0.1', 9501, SWOOLE_SOCK_TCP); $port->on('receive', function($serv, $fd, $reactor_id, $data){ var_dump($fd, $reactor_id, $data); $serv->send($fd, "Swoole: $data"); }); $serv->on('connect', function ($_server, $fd) { echo "client {$fd} connect\n"; }); $serv->on('open', function (\swoole_websocket_server $_server, swoole_http_request $request) { echo "server#{$_server->worker_pid}: handshake success with fd#{$request->fd}\n"; // var_dump($request); }); ... }}} 启动服务,总是报错如下: {{{ Use of undefined constant SWOOLE_SSL - assumed 'SWOOLE_SSL' }}} 请求指点,这是哪里出错了?感激不尽。
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2019-05-17
何
何梦泽
问题解决了,swoole用pecl安装的,默认没有开启openssl,看上面的 {{{ php --ri swoole }}}返回的信息值, 重新安装swoole,如下,开启openssl {{{ git clone https://github.com/swoole/swoole-src.git cd swoole-src phpize ./configure --enable-openssl make && make install }}} 再次执行命令查看信息如下,跟原来的比发现多了
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。