我该如何在允许用户导航到其他页面的同时,使用strophe保持聊天会话的打开
How would I keep a chat session open with strophe while still allowing users to navigate to other pages?
如果这个问题看起来很模糊,我很抱歉,但以下是我的答案。
在我的网页旁边,我有一个聊天脚本,每次调用页面时都会执行以下功能。
- 连接到我的BOSH服务器
- 根据登录者提取数据
- 在侧边栏上显示用户的名册
我试图通过保持侧边的聊天窗口打开并使用框架概念加载其他数据来节省带宽(同时防止用户每次移动页面时登录/注销),类似于Facebook的做法。
我知道
history.pushState({},"New Title Goes Here","http://facebook.com/Something");
但我知道肯定还有更多的东西。只是有点不知道从哪里开始寻找。AJAX我知道它是否会发挥很大作用,但我不喜欢一直只依赖javascript。
感谢您的帮助。
如果有点晚,很抱歉,但您可以使用Strophe的附加功能,这样您的BOSH会话就不会在页面重新加载之间丢失。
您需要做的是,首先连接并验证您的XMPP服务器,然后将JID、RID和SID保存到页面刷新时不会丢失的位置。例如,在您的会话或cookie中。
var conn = new Strophe.Connection('your_bosh_url');
conn.attach(your_jid, your_sid, your_rid, function(status){
if(status === Strophe.Status.ATTACHED){
*and so on ...*
有一个contentdiv和一个chatdiv。我的网站使用AJAX只是为了美观,所以我有一个navdiv和contentdiv,我用jQuery加载东西。看看我的网站:http://derek.genevievehoward.com/和这个JSFiddlehttp://jsfiddle.net/howderek/tNVd8/
出于某种原因,JSFiddle不喜欢AJAX,但我的网站使用了相同的javascript,所以我可以向你保证它是准确的。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 我该如何在允许用户导航到其他页面的同时,使用strophe保持聊天会话的打开
- 如何使用 Strophe.js 在 XMPP(开放火服务器)中实现 see by 和消息碳功能
- 使用 strophe attach() 而不是 connect() 不起作用,除非我两次触发我的连接回调
- 使用Strophe.js自定义XMPP消息
- 在 muc 房间中使用 Strophe 发送 XHTML 消息
- 使用Strophe.js在openfire上进行新注册
- 如何使用strophe在CDATA中发送邮件正文
- Strophe不使用javascript调用iq-addHandler
- 将Strophe.js与ReactNative结合使用
- 可以使用Strophe在java(jvm)上与Bosh管理器建立Bosh连接吗?
- 为什么使用strophe.js的XMPP客户端仍然可以工作,包括flXHR.js
- 得到SID &使用strophe.js的RID
- XMPP web客户端(使用strophe.js)需要花费时间连接ejabberd服务器
- 使用Strophe js (CONNFAIL)连接到Prosody XMPP服务器
- 使用strophe.js检索群聊历史记录
- 在线和离线用户实时使用strophe.js
- 使用Openfire、Javascript(strophe.js)和html5 websockets的聊天客户端
- 使用 Strophe.js-Register-Plugin 注册 XMPP-Account
- strophe.js,我使用attach()来恢复Bosh会话,但得到'Status'连接到CONNFA