Rabbitmq WebSocket 自动断开问题的解决方案

博客讲述使用stompJS从web连接RabbitMQ时出现连接丢失报错。指出连接时设置心跳包参数很关键,填0或数值太大都不行,应在服务器主动断开前发送心跳包,且时间不超服务器默认自动断开时长,默认约10秒。

关于报错,Whoops! Lost connection to ws://XXX.XXX.XXX.XXX:15684/ws
在玩rabbitMQ时候,用stompJS从web连接ranbbitMQ时,报了标题的错误消息!

我把我这个html页面代码贴上

最主要的是这两个参数

	client.heartbeat.outgoing = 8000; // 毫秒
	client.heartbeat.incoming = 8000;// 毫秒

这两个参数, 填0是不行的, 0代表永不发送心跳包. Rabbitmq服务需要心跳包来维持正常状态.

填的数值太大也不行. 发送时间太长,导致服务器端认为连接已断开. 服务器端会主动断开连接 .
所以正确方式是在, 服务器主动断开之前发送一个心跳包. 这个时间不要超过服务器默认的自动断开连接时长. 服务器默认好像是10秒断开. 可以自己用秒表测试一下.

<html>  
    <head>  
        <title>WebSocket</title>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    </head>  
    <body>  
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值