社交电商系统操作文档(内部)IM即时通讯-Wss和端口
时间:2023年05月09日
/来源:网络
/编辑:佚名
Wss和端口
你可以使用默认的端口,同样也可以自定义服务器端口,新手建议默认,非新手建议自定义端口,如果出现问题请还原默认配置
配置wss 服务
接之前所讲到 IM二级域名
理论上开启wss应该直接修改 start_gateway.php 23-37 行 即可,
但 wss 和 https 都需要使用443端口,且很多小伙伴只有一台服务,我们提供最佳解决方案:默认使用ws协议,采用nginx反向代理让ws 支持 wss
以下三种wss方案选其一:
1. 有单台服务器,通过 wss://chat.wanlshop.com 反向代理 http://123.123.123.123:7272 后面没有端口号直接使用(Nginx推荐)
需要新建一个站点,并绑定SSL证书,修改站点配置文件,以宝塔为例
Nginx反向代理
我们这里为你提供了一个对比图,和修改后的源码,你可以参考下
修改后源码
server
{
listen 80;
listen 443 ssl http2;
server_name chat.wanlshop.com;
location / {
proxy_pass http://47.111.117.35:7272; #代理到上面的地址去,格式:http://域名:端口号,
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_connect_timeout 5s; #配置点1
proxy_read_timeout 60000s; #配置点2,如果没效,可以考虑这个时间配置长一点
proxy_send_timeout 60000s; #配置点3
}
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/chat.wanlshop.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/chat.wanlshop.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
access_log /dev/null;
error_log /www/wwwlogs/chat.wanlshop.com.error.log;
}
2. 独立部署即时通讯,可以直接使用433端口wss(不推荐)
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件中的 87-116行,按照以下修改即可
// wss服务证书
$context = array(
'ssl' => array(
// 请使用绝对路径
'local_cert' => '/www/wwwroot/wanlshop/addons/wanlshop/library/GatewayWorker/ssl/chat.pem', // 也可以是crt文件
'local_pk' => '/www/wwwroot/wanlshop/addons/wanlshop/library/GatewayWorker/ssl/chat.key',
'verify_peer' => false,
// 'allow_self_signed' => true, //如果是自签名证书需要开启此选项
)
);
// websocket协议(端口任意,只要没有被其它程序占用就行)
$gateway = new Gateway("websocket://0.0.0.0:443", $context);
// $gateway = new Gateway("websocket://0.0.0.0:7272");
// 开启SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';
// gateway名称,status方便查看
$gateway->name = 'WanlGateway';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 2900;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1238';
// 心跳间隔
$gateway->pingInterval = 10;
// 心跳数据
$gateway->pingData = '{"type":"ping"}';
将域名chat.xxx.com解析到此服务器上,重启IM(重启方式上章有讲)WSS IM就部署完成了
在多用户商城后台 > 生成客户端 > 客户端配置 > IM服务器填写wss://chat.xxx.com即可
3. 不使用独立服务器,且Apache不能反向代理的服务器,启动后直接使用wss+端口号(不推荐)
假设服务器主站域名是https://www.wanlshop.com(必须有SSL证书)
则你可以直接使用 wss://www.wanlshop.com:7272
(注意:使用1、2、反向代理不要添加端口号!!!!wss://www.wanlshop.com)
修改端口
修改服务端口,即ws连接端口
将7272端口号修改成你自己即可,除数字外不要修改任何字符,如果是独立服务器部署且使用wss请修改为443端口
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件第99行
$gateway = new Gateway("websocket://0.0.0.0:7272");
修改register服务端口
将1238修改成你自己即可,除数字外不要修改任何字符,修改时以下3项必须修改成相同的
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件
第81行
new Register('text://0.0.0.0:1238');
第112行
$gateway->registerAddress = '127.0.0.1:1238';
第129行
$worker->registerAddress = '127.0.0.1:1238';
打开文件路径addons/wanlshop/library/WanlChat修改目录下的GatewayClient.php文件
第39行
public static $registerAddress = '127.0.0.1:1238';
打开文件路径addons/wanlshop/library/WanlChat修改目录下的WanlChat.php文件
第27行
GatewayClient::$registerAddress = '127.0.0.1:1238';
你可以使用默认的端口,同样也可以自定义服务器端口,新手建议默认,非新手建议自定义端口,如果出现问题请还原默认配置
配置wss 服务
接之前所讲到 IM二级域名
理论上开启wss应该直接修改 start_gateway.php 23-37 行 即可,
但 wss 和 https 都需要使用443端口,且很多小伙伴只有一台服务,我们提供最佳解决方案:默认使用ws协议,采用nginx反向代理让ws 支持 wss
以下三种wss方案选其一:
1. 有单台服务器,通过 wss://chat.wanlshop.com 反向代理 http://123.123.123.123:7272 后面没有端口号直接使用(Nginx推荐)
需要新建一个站点,并绑定SSL证书,修改站点配置文件,以宝塔为例
Nginx反向代理
我们这里为你提供了一个对比图,和修改后的源码,你可以参考下
修改后源码
server
{
listen 80;
listen 443 ssl http2;
server_name chat.wanlshop.com;
location / {
proxy_pass http://47.111.117.35:7272; #代理到上面的地址去,格式:http://域名:端口号,
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_connect_timeout 5s; #配置点1
proxy_read_timeout 60000s; #配置点2,如果没效,可以考虑这个时间配置长一点
proxy_send_timeout 60000s; #配置点3
}
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/chat.wanlshop.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/chat.wanlshop.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
access_log /dev/null;
error_log /www/wwwlogs/chat.wanlshop.com.error.log;
}
2. 独立部署即时通讯,可以直接使用433端口wss(不推荐)
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件中的 87-116行,按照以下修改即可
// wss服务证书
$context = array(
'ssl' => array(
// 请使用绝对路径
'local_cert' => '/www/wwwroot/wanlshop/addons/wanlshop/library/GatewayWorker/ssl/chat.pem', // 也可以是crt文件
'local_pk' => '/www/wwwroot/wanlshop/addons/wanlshop/library/GatewayWorker/ssl/chat.key',
'verify_peer' => false,
// 'allow_self_signed' => true, //如果是自签名证书需要开启此选项
)
);
// websocket协议(端口任意,只要没有被其它程序占用就行)
$gateway = new Gateway("websocket://0.0.0.0:443", $context);
// $gateway = new Gateway("websocket://0.0.0.0:7272");
// 开启SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';
// gateway名称,status方便查看
$gateway->name = 'WanlGateway';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 2900;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1238';
// 心跳间隔
$gateway->pingInterval = 10;
// 心跳数据
$gateway->pingData = '{"type":"ping"}';
将域名chat.xxx.com解析到此服务器上,重启IM(重启方式上章有讲)WSS IM就部署完成了
在多用户商城后台 > 生成客户端 > 客户端配置 > IM服务器填写wss://chat.xxx.com即可
3. 不使用独立服务器,且Apache不能反向代理的服务器,启动后直接使用wss+端口号(不推荐)
假设服务器主站域名是https://www.wanlshop.com(必须有SSL证书)
则你可以直接使用 wss://www.wanlshop.com:7272
(注意:使用1、2、反向代理不要添加端口号!!!!wss://www.wanlshop.com)
修改端口
修改服务端口,即ws连接端口
将7272端口号修改成你自己即可,除数字外不要修改任何字符,如果是独立服务器部署且使用wss请修改为443端口
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件第99行
$gateway = new Gateway("websocket://0.0.0.0:7272");
修改register服务端口
将1238修改成你自己即可,除数字外不要修改任何字符,修改时以下3项必须修改成相同的
打开文件路径addons\wanlshop\library\command目录下的Chat.php文件
第81行
new Register('text://0.0.0.0:1238');
第112行
$gateway->registerAddress = '127.0.0.1:1238';
第129行
$worker->registerAddress = '127.0.0.1:1238';
打开文件路径addons/wanlshop/library/WanlChat修改目录下的GatewayClient.php文件
第39行
public static $registerAddress = '127.0.0.1:1238';
打开文件路径addons/wanlshop/library/WanlChat修改目录下的WanlChat.php文件
第27行
GatewayClient::$registerAddress = '127.0.0.1:1238';
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03