我正在实现一个聊天应用程序。我不在服务器上,包含JavaScript文件的页面可以是文件系统上的任何HTML页面,其中嵌入了JavaScript和Socket.io。
现在的问题是,根据定义,页面重新加载将始终触发新请求,导致新的Socket连接。
$(document).ready(function() {
var messages = [];
socket = io.connect(connectionString);
///next code sequence
});
我想实现的是即使在页面重新加载后,我的会话仍然可以保持。 现在经典的实现方式是: 1)我可以保持一个经典的实现。一旦完成,我可以保留先前的sessionid,并从数据库中重新获取以前的会话/聊天并继续。 但上述方法非常笨拙和耗时。 有更好的方法吗?
setInterval()
的频率以及每次调用时要执行的操作。如果使用不当,它可能会占用大量服务器资源。偶尔使用则几乎不会被注意到。您应该通过其他方式识别用户(例如,在连接时可以看到的 cookie),然后将该标识符作为自定义属性放在 socket 对象上。 - jfriend00