请问使用workerman3.X的websocket协议,前端怎么用js定时发送心跳包呀,我用了
self.setInterval("heart()",1000); function heart() { ws.send('heart'); }
好像无法发送,不知怎么做呢?
在onopen回调里 初始化一个定时器,发心跳。 感觉你是不是写错了,setInterval里的heart()你确定要加双引号? 给你个setinterval的事例
onopen
heart()
setInterval(show, 1000) function show(){ console.log(1) }
谢谢你,我试了你的方法,这样 ws.onopen = function() { alert("连接成功"); ws.send('tom'); alert("给服务端发送一个字符串:tom");
self.setInterval(heart(),1000); };
function heart() { ws.send('heart'); } 但客户端只发送了一个heart,后续没有在发送,我试了输出到控制台,只输出一个heart,请问你知道什么原因吗
你能仔细看看我怎么写的setinterval吗?
@1239:我像你这么写 var ws = new WebSocket("ws://127.0.0.1:2000"); ws.onopen = function() { alert("连接成功"); ws.send('5a6a1aa21dc07034e0c89260'); alert("给服务端发送一个字符串:tom"); // 使用刚指定的配置项和数据显示图表。 setInterval(show, 1000) };
function show(){ console.log(1) }
可以定时输出,但是 console.log(1)换为ws.send('heart')之后,就一次都不发送,服务器没收到
hi,我用你的代码测试过了,我这是可以的。请查看你后端代码是否有问题。
谢谢你,我不加复杂逻辑测试可以了,猜测是之前后端代码有定时查询数据库,查询到记录更新就发送,里面有sleep()代码,造成接收不到 我使用定时器修改了代码,已经可以了,万分感谢你
在
onopen
回调里 初始化一个定时器,发心跳。感觉你是不是写错了,setInterval里的
heart()
你确定要加双引号?给你个setinterval的事例
谢谢你,我试了你的方法,这样
ws.onopen = function() {
alert("连接成功");
ws.send('tom');
alert("给服务端发送一个字符串:tom");
self.setInterval(heart(),1000);
};
function heart()
{
ws.send('heart');
}
但客户端只发送了一个heart,后续没有在发送,我试了输出到控制台,只输出一个heart,请问你知道什么原因吗
你能仔细看看我怎么写的setinterval吗?
@1239:我像你这么写
var ws = new WebSocket("ws://127.0.0.1:2000");
ws.onopen = function() {
alert("连接成功");
ws.send('5a6a1aa21dc07034e0c89260');
alert("给服务端发送一个字符串:tom");
// 使用刚指定的配置项和数据显示图表。
setInterval(show, 1000)
};
可以定时输出,但是 console.log(1)换为ws.send('heart')之后,就一次都不发送,服务器没收到
hi,我用你的代码测试过了,我这是可以的。请查看你后端代码是否有问题。
谢谢你,我不加复杂逻辑测试可以了,猜测是之前后端代码有定时查询数据库,查询到记录更新就发送,里面有sleep()代码,造成接收不到
我使用定时器修改了代码,已经可以了,万分感谢你