【发布时间】:2013-06-25 08:28:24
【问题描述】:
我正在使用 NodeJS 将标志放入内存缓存中。
这是代码:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
var memcache = require('memcache');
var client = new memcache.Client();
server.listen(3005);
io.sockets.on('connection', function (socket) {
socket.emit('connected');
socket.on('check',function(data){
client.on('connect', function(){
console.log('connect');
});
client.connect();
client.set(data.id, 1, function(error, result){
console.log('Key added');
console.log(result);
client.get(data.id, function(error, result){
socket.emit('checked',data.id);
});
},600);
});
});
同时我有大约 60 个连接。
一些用户抱怨此代码需要大约 10-12 秒才能加载。
在socket.emit('checked',data.id) 之后添加了socket.disconect(),但它开始工作较慢。
有什么想法吗?
更新
所有用户都使用 Android / iOS 原生浏览器。
【问题讨论】:
-
对于那些滞后的用户来说,网络/浏览器是个问题。如果他们的传输方法是长轮询,那么这种延迟可能是由于这个原因,特别是在不受支持的浏览器上。尝试记录所有传入连接的传输以检查这一点。还有更多的代码。
标签: performance node.js mobile connection