资料
- laravel-s gitee
- 在Laravel中集成Swoole实现WebSocket服务器 实现参考
基本命令
- php bin/laravels {start|stop|restart|reload|info|help}
- 注意: start启动后 将在/storage/目录下生成conf和pid文件 如有变更APP_KEY(迁移站点、新建站点)将会报错 请restart
背景
基于dcat-admin后台系统 编写http接口并部署了一套论坛小程序 需要实现IM功能(即时通讯)
实现要点
- LARAVELS_LISTEN_PORT=5200 监听端口
- SWOOLE_HTTP_WEBSOCKET=true 开启websocket
- LARAVELS_LISTEN_IP=php 监听IP 在本地调试中为docker的容器名 默认为127.0.0.1
nginx配置
# 定义一组服务器 别名为laravelsDemo # nginx以加权(weight)轮转方式讲请求分发到各服务器 upstream laravelsDemo { # Connect IP:Port server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s; keepalive 16; } server { # 其他配置... # 匹配wws 处理 location =/wws { # proxy_connect_timeout 60s; # proxy_send_timeout 60s; # proxy_read_timeout: Nginx will close the connection if the proxied server does not send data to Nginx in 60 seconds; At the same time, this close behavior is also affected by heartbeat setting of Swoole. # proxy_read_timeout 60s; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-PORT $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header Server-Protocol $server_protocol; proxy_set_header Server-Name $server_name; proxy_set_header Server-Addr $server_addr; proxy_set_header Server-Port $server_port; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # 代理转发 laravelsDemo 为 upstream值 proxy_pass http://laravelsDemo; } location @laravelsDemo { # proxy_connect_timeout 60s; # proxy_send_timeout 60s; # proxy_read_timeout 60s; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-PORT $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header Server-Protocol $server_protocol; proxy_set_header Server-Name $server_name; proxy_set_header Server-Addr $server_addr; proxy_set_header Server-Port $server_port; # 代理转发 laravelsDemo 为 upstream值 proxy_pass http://laravelsDemo; } }
- 其他实现在在Laravel中集成Swoole实现WebSocket服务器 实现参考中 不再赘述
本文由 ben 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Apr 6, 2022 at 01:18 pm