Hyperf 在 NginxProxyManager 如何配置 websocket?

  • 新建代理 填写域名等服务信息,选择支持WebSockets。
  • 创建 SSL
  • 编写nginx配置
bash 复制代码
location /message.io{
    proxy_pass http://<你的ip>:<对应端口号>;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
}
  • hyperf配置
  • routes.php
bash 复制代码
// 消息ws服务器
 Router::addServer('message', function () {
     Router::get('/message.io', 'App\Controller\Web\WebSocketController', [
         'middleware' => [\App\Middleware\WsAuthMiddleware::class], // ws中间件
     ]);
 });
  • server.php配置
bash 复制代码
 [
            'name' => 'message',
            'type' => Server::SERVER_WEBSOCKET,
            'host' => '0.0.0.0',
            'port' => 9502,
            'sock_type' => SWOOLE_SOCK_TCP,
            'callbacks' => [
                Event::ON_HAND_SHAKE => [Hyperf\WebSocketServer\Server::class, 'onHandShake'],
                Event::ON_MESSAGE => [Hyperf\WebSocketServer\Server::class, 'onMessage'],
                Event::ON_CLOSE => [Hyperf\WebSocketServer\Server::class, 'onClose'],
            ],
            'settings' => [
                // 心跳检测
                'heartbeat_idle_time' => 60,
                'heartbeat_check_interval' => 30,
            ],
        ],
  • 访问路径
bash 复制代码
wss://wsdev.com/message.io
相关推荐
大G哥34 分钟前
【WebSocket&IndexedDB】node+WebSocket&IndexedDB开发简易聊天室
网络·websocket·网络协议
Javis2111 小时前
【Linux高级全栈开发】2.1高性能网络-网络编程——2.1.1 网络IO与IO多路复用——select/poll/epoll
linux·运维·网络
画中有画1 小时前
一种安全不泄漏、高效、免费的自动化脚本平台
运维·安全·自动化·自动化脚本
撸码到无法自拔3 小时前
云计算-私有云-私有云服务运维
运维·云计算
极小狐5 小时前
如何使用极狐GitLab 软件包仓库功能托管 maven?
java·运维·数据库·安全·c#·gitlab·maven
檀越剑指大厂7 小时前
【Docker系列】docker inspect查看容器部署位置
运维·docker·容器
江湖人称-杰8 小时前
CentOS配置了镜像源之后依旧下载元数据失败
linux·运维·centos
BXCQ_xuan10 小时前
DNS负载均衡和CDN的区别
运维·负载均衡
purrrew10 小时前
【Java ee初阶】网络原理
java·运维·服务器·网络·网络协议·udp·java-ee
滴水之功11 小时前
Ubuntu22.04怎么退出Emergency Mode(紧急模式)
linux·运维·服务器