webSocket如何保持长连接?

解说:使用Socket做聊天的项目,发现平均保持1分钟左右,就会出现连接中断,原因有如下:

一、Nginx代理

nginx.conf里面需配置几个相关参数:

1. proxy_connect_timeout; 
2. proxy_read_timeout; 

3. proxy_send_timeout;

http {
    server {
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://scoket; 
            proxy_http_version 1.1; 
            proxy_connect_timeout 3600s; #配置点1
            proxy_read_timeout 3600s; #配置点2
            proxy_send_timeout 3600s; #配置点3
            proxy_set_header Upgrade $http_upgrade; #这是webSocket的配置
            proxy_set_header Connection "Upgrade"; #这是webSocket的配置
        }
    }
}

二、socket设置问题

相关参数:

heartbeat_check_interval
描述:设置心跳检测间隔

说明:此选项表示每隔多久轮循一次,单位为秒。每次检测时遍历所有连接,如果某个连接在间隔时间内没有数据发送,则强制关闭连接(会有onClose回调)。


heartbeat_idle_time
描述:设置某个连接允许的最大闲置时间。
说明:该参数配合heartbeat_check_interval使用。每次遍历所有连接时,如果某个连接在heartbeat_idle_time时间内没有数据发送,则强制关闭连接。默认设置为heartbeat_check_interval * 2。

示例:

$this->serv->set(array(
'daemonize' => true, 'ssl_cert_file' => 'cert/214422575910292.crt', 'ssl_key_file' => 'cert/214422575910292.key', 'heartbeat_check_interval' => '3600', 'heartbeat_idle_time' => '3600' ));

socket server配置选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值