我正在开发一个中继聊天应用程序,分为2个窗格。
右窗格 - >用户的聊天响应(这使用放置在更新面板内的ASP.NET多行标签控件,因此当任何用户键入响应并提交时,它将被添加到此控件中)
左窗格 - >当前在线的用户列表(这使用ASP.NET列表控件,它也放在更新面板中)。
下面是用户输入文本的文本框和发送回复的发送按钮。
一切正常。但是当用户关闭浏览器窗口而不是单击注销按钮时。左窗格中的列表未刷新。当用户退出时,它会正常发生。
如果用户关闭浏览器,有没有办法敲击列表中的用户名?(甚至在他的会话在服务器端过期之前)。?
抱歉,我无法曝光屏幕截图。任何人都可以提出一个想法以及示例代码段。?
感谢
答案 0 :(得分:3)
您可以采取相反的方式:定期使用ajax调用从浏览器ping服务器。如果未收到ping,请删除该用户。
答案 1 :(得分:2)
您可以use Javascript to detect when the browser has been closed,然后将AJAX请求重新启动回服务器,通知用户离开。