先要让一个端口设置为websocket客户端的启动端口,这里demo选用的是8273端口
配置websocket长连接服务协议
博主自己采用的是nginx服务器
nginx配置websocket配置文件如下:
#websockt长连接协议 location /wss{ proxy_pass http://47.99.33.91:8273;#8273客户端启动端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_read_timeout 1200s; } #添加这三行 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; #添加这三行
后端im源码下载
链接:https://pan.baidu.com/s/1zq47MrTtb1ifT3bogJHOcQ
提取码:tlg7
后端socket采用GatewayWorker框架(官方文档:http://doc4.workerman.net/642185
上手之前请先对GatewayWorker框架有基本了解。
后端sokcet主要用来实现直播间聊天、客服聊天、直播间管理等功能;
后端文件目录:根目录/im/
socket脚本启动方式,在命令行中
php /网站目录/im/start.php start //以debug(调试)方式启动 php /网站目录/im/start.php start -d //以daemon(守护进程)方式启动
了解更多命令操作和不同命令的区别,请查看框架文档:http://doc4.workerman.net/326106
*socket后端程序采用GatewayWorker框架(开发手册:http://doc4.workerman.net/642185)
前端配置
socket域名配置
前端根目录/config/index.js中配置sokect接口域名
const LIVESOKECT = 'wss://woshop.s1107.com:8273/'; 域名:woshop.s1107.com,跟换为自己的 默认端口号:8273,一般不需更换
后端配置
文件路径
站点根目录/im/
SSL证书配置
socket默认启用SSL证书配置,文件位置:根目录/im/Applications/Front/start_gateway.php
$context = array( 'ssl' => array( 'local_cert' => '/项目地址/ssl/full_chain.pem', 'local_pk' => '/项目地址/ssl/private.key', 'verify_peer' => false, ) );
Socket数据库配置
修改数据库配置:根目录/im/Applications/Front/Events.php
PHP设置
服务器端PHP版本必须解禁函数:pcntl_signal、pcntl_signal_dispatch、pcntl_fork、pcntl_wait、pcntl_alarm
PHP安装Redis扩展
安装Redis
服务器安装Redis(端口默认设置为:6379)
放行端口
服务器安全组和宝塔面板都要放行端口:8273
启动socket服务
启动命令(守护进程模式):
生产环境使用守护进程模式
php /网站目录/im/start.php restart -d
启动命令(调试模式):
开发环境使用调试模式
代码中echo、var_dump、print等打印函数会直接输出在终端;
异常信息会直接输出在终端;
php /网站目录/im/start.php restart
*建议:在宝塔面板-计划任务,创建一个任务