django + orbited/stomp使用方法
我正在使用Django服务器和orbited/stomp服务器一起写一个类似聊天的应用。假设有一些用户已经连接到orbited。当其中一个用户从orbited断开连接时,我该如何通知其他人呢?我尝试了以下代码(这是在客户端的JavaScript代码——也许这就已经错了,应该由服务器来推送通知,对吧?):
function end()
{
stomp.send('user killed', '/channel');
}
还有
stomp.onclose = end;
但这根本不起作用。然后我使用了
window.onbeforeunload = end;
但同样没有任何明显的效果。我还把end()
替换成了其他函数,这个函数只是向Django服务器发送ajax请求。但这样一来,stomp.onclose
又没有任何反应,而window.onbeforeunload
则给我带来了一个“断开的管道”错误。
所以这些都是尝试实现“客户端在退出前留下消息”的想法。但都失败了。
我甚至不确定我这样做是否正确。有没有办法通知orbited/stomp的用户某个用户已经离开了?任何想法都很受欢迎。
编辑:也许还有其他方法。我读到可以配置orbited服务器,在某个用户的连接关闭时,向应用程序发送一个带有用户密钥的HTTP回调。不幸的是,没有解释如何做到这一点。有人知道答案吗?
1 个回答
0
看起来orbited不太适合这种情况(我和orbited的创作者聊过)。我换成了hookbox,效果很好。