魔缇Smsot2.0 websocket配置教程

smsot-websocket-config.png

为什么要启用websocket?

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

通过websocket可以实现魔缇Smsot2.0中的即时聊天、即时通知等功能。

配置参数

https启用密钥配置

socket/Applications/smsotstart_gateway.php中设置

'local_cert'                 => 'fullchain.pem', // 也可以是crt文件
'local_pk'                   => 'privkey.pem',//private key文件

修改fullchain.pemprivkey.pem的具体引用位置

后台需要配置的参数

服务器IP地址:0.0.0.0

外网websocket端口:9011

通信进程数:5

内网IP地址:127.0.0.1

内部通讯起始端口:9012

服务注册端口:9020

启动服务

温馨提示

启动服务之前,请检查以下函数是否解除禁用

pcntl_fork
pcntl_alarm
pcntl_signal_dispatch
pcntl_wait
pcntl_signal

使用终端启动start.php

进入socket目录,以daemon守护进程方式启动
温馨提示:守护进程的方式启动,在关闭终端后依旧有效。

php start.php start -d

如果你不会终端启动,如果使用宝塔面板,可以使用下面的教程

使用Supervisor管理器启动

图片[2]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

点击添加守护进程>运行目录

图片[3]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

选择socket目录,然后在启动命令上填写

php start.php start
图片[4]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

点击启动即可

图片[5]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog
图片[6]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

这里会显示已经启动成功了,如果提示启动进程异常,请参考后面的相关禁用函数需要解除。

图片[7]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog
图片[8]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

启动报错

解除相关函数禁用

如果启动出现报错情况,请解除相关函数的禁用:
pcntl_fork
pcntl_alarm
pcntl_signal_dispatch
pcntl_wait
pcntl_signal
如果还有提示XXXX disabled for unsecurity reason的
也请您自行解除禁用

提示进程已占用

在启动异常后,发现日志里提示进程端口已经被占用。

我们可以用下面命令看下,进程号

ps -aux |grep worker

然后使用kill -9把进程挨个干掉就好了

图片[9]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

开机自启动设置

不经常重启服务器的不建议设置,自己给自己找麻烦。启动了之后手动输入一下就行了,或者按照上述Supervisior管理器部署上就行了。如果你头比较铁,可以研究下,通过系统服务来启动websocket,使用下面的方法则不需要上面的Supervisior管理器

创建service文件

/lib/systemd/system创建workerman.service

[Unit]
Description=workerman
After=network.target
 
[Service]
Type=forking
ExecStart=/www/server/php/70/bin/php /www/wwwroot/ycbstzx.cn/socket/start.php start -d
ExecReload=/www/server/php/70/bin/php /www/wwwroot/ycbstzx.cn/socket/start.php restart
ExecStop=/www/server/php/70/bin/php /www/wwwroot/ycbstzx.cn/socket/start.php stop
PrivateTmp=true
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

这里参数中/www/server/php/70/bin/php是宝塔默认安装php7.0的路径,/www/wwwroot/ycbstzx.cn/start.php是我们启动websocket文件的路径。

添加好该文件之后要重启一下,才能生效。重启之后,我们运行下面的命令启动服务

systemctl start workerman.service
图片[10]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog

可以通过下面命令检测是否处于active启动状态,如果不是可以看到报错的情况

systemctl status workerman.service

然后,我们将服务设置成开机启动就好了

systemctl enable workerman.service
图片[11]-魔缇Smsot2.0 websocket配置教程-FancyPig's blog
© 版权声明
评论 共2条

请登录后发表评论

    • FancyPig的头像-FancyPig's blog
      罗三疯
      2