如何在允许用户导航到其他页面的同时保持聊天会话畅通无阻?

时间:2012-07-31 17:24:53

标签: php javascript jquery html5 strophe

如果这个问题看起来很模糊,我很抱歉,但这就是我所拥有的。

在我的网页一侧,我有一个聊天脚本,每次调用页面时都会执行以下功能。

  1. 连接到我的BOSH服务器
  2. 根据登录的人员提取数据
  3. 在侧栏显示用户的名单
  4. 我正在尝试通过保持聊天窗口在侧面打开并使用框架概念加载其他数据来节省带宽(也防止用户在每次移动页面时登录/注销),类似于Facebook如何做事。

    我知道

    history.pushState({},"New Title Goes Here","http://facebook.com/Something");
    

    但我知道必须有更多的东西。只是有点迷失在哪里开始寻找。 AJAX我知道如果要发挥它的重要作用,但我不喜欢一直只依赖于javascript。

    感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

抱歉,如果这有点晚,但您可以使用Strophe's attach function,这样您的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 ...*

答案 1 :(得分:0)

有内容div和聊天div。我的网站使用AJAX很好,所以我有一个nav div和一个内容div,我用jQuery加载东西。看一下我的网站:http://derek.genevievehoward.com/和这个JSFiddle http://jsfiddle.net/howderek/tNVd8/

由于某些原因,JSFiddle不喜欢AJAX,但我的网站使用相同的JavaScript,所以我可以向你保证它是准确的。