nodejs,socket.io遇到的几个问题.总是自动断开? 我基于nodejs,socket.io做了一个web版的即时通讯.发现几个问题,请大家帮忙解决一下.第一:每次连上以后,发不了几个消息就会自动断开,怎么办?有没有什么好的处理办法?第二:每次刷新页面的时候总是会更换socket.id(我目前是用这个ID做的客户端识别主键),有没有更好的方案?第三:想做长连接这种就满足了么?多谢大家的帮助.nodejsWeb即时通讯socket.io 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以前写过一个,大致意思这样var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs') app.listen(8088);function handler(req, res) {}var sockets = {};io.sockets.on('connection', function (socket) { socket.on('ferret', function (fromUid, fn) { if(!sockets[fromUid]){ sockets[fromUid] = this; } fn(); }); socket.on('message', function (data) { data = JSON.parse(data); if (sockets[data.toUid]) { sockets[data.toUid].emit('news', data); } });});//消息发送者var fromUid = 11;//消息接收者var toUid = 22;//创建实例var socket = io.connect('http://192.168.0.124:8088');//服务端有新消息推送socket.on('news', function (data) { //消息处理});//建立连接socket.on('connect', function () { socket.emit('ferret', fromUid, function () { socket.send(JSON.stringify({ fromUid : fromUid, toUid : toUid, msg:'12121212' }); } });}); 你这个也没见有处理超时的问题的啊.我的是连接后,发送消息几次以后连接就断开了.只能刷新重新连接.服务器debugdebug - fired close timeout for client IE不支持WebSocket,IE用的是长连接,请求超时后会马上再发一个请求,重新连接。但是其它应该不会影响。 我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开.... 我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开....后台代码呢 我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开....汗,搞定了.客户端脚本错误引起的中断.. My97DatePicker 能选择季度吗? setTimeout 改变图片的问题,我不知道为什么图片不能够,自动变化呢? 请教js高手 JS正则表达式 有关hidden问题的一组网页(100分裸体跪求祥解) 请问一个框架提交数据问题 怎样点击一个表中的单元格把他的name输出到一个输入框中显示&当鼠标移到单元格上单元格边框变色 如何通过JS来控制打印机的横向设置呢? 如何根据光标所在的文本框的控制输入法的打开、关闭??? JS获取get请求参数,隐性URL jqgrid查询编辑这些按钮显示不出来 用html4画任意斜率的直线
app.listen(8088);
function handler(req, res) {}
var sockets = {};
io.sockets.on('connection', function (socket) {
socket.on('ferret', function (fromUid, fn) {
if(!sockets[fromUid]){
sockets[fromUid] = this;
}
fn();
});
socket.on('message', function (data) {
data = JSON.parse(data);
if (sockets[data.toUid]) {
sockets[data.toUid].emit('news', data);
}
});
});//消息发送者
var fromUid = 11;
//消息接收者
var toUid = 22;
//创建实例
var socket = io.connect('http://192.168.0.124:8088');
//服务端有新消息推送
socket.on('news', function (data) {
//消息处理
});
//建立连接
socket.on('connect', function () {
socket.emit('ferret', fromUid, function () {
socket.send(JSON.stringify({
fromUid : fromUid,
toUid : toUid,
msg:'12121212'
});
}
});
});
你这个也没见有处理超时的问题的啊.我的是连接后,发送消息几次以后连接就断开了.只能刷新重新连接.服务器debug
debug - fired close timeout for client
我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开....
我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开....
后台代码呢
我刚发现的,如果不用socket发送消息没事儿,发了消息才会断开....
汗,搞定了.客户端脚本错误引起的中断..