社交电商系统操作文档(内部)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';
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。