1

我终于安装了 openfire 服务器 - 诚然 XMPP 的菜鸟 - 但我到了那里:)

我修改了 .htaccess & 现在尝试在我的服务器上 点击http://166.xx.xx.xx/candy-chat-c​​andy-ca544b1/example/index.html

该页面向我显示了“正在连接.. ”消息并挂在那里。

这是我在深入研究萤火虫帖子/响应之前的设置。

我已经修改了 example/index.html :

$(document).ready(function() {
    Candy.init('http://166.xx.xx.xx:7070/http-bind/', {
        core: { debug: true },
        autojoin: ['Opentalk@conference.166.xx.xx.xx'],
        view: { language : 'en' }
    });

    Candy.Core.connect('166.xx.xx.xx', null, 'Guest'); // Connect anonymously to a specific server
});

firebug中,我看到响应是的。但是,萤火虫中的帖子条目显示 200 OK

并且萤火虫抱怨(我认为这是因为响应是空的)-->“

XML 解析错误:找不到元素位置:moz-nullprincipal:{80250471-6b20-4144-ad88-92777a926018} 第 1 行,第 1 列:

这是帖子

<body rid='3954428912' xmlns='http://jabber.org/protocol/httpbind' to='166.xx.xx.xx' xml:lang='en' wait='60' hold='1' content='text/xml; 
charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>

由于我的调试已打开,我看到与 post 相同的消息:

SENT: <body rid='3954428912' xmlns='http://jabber.org/protocol/httpbind' to='166.xx.xx.xx' xml:lang='en' wait='60' hold='1' content='text/xml;
charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>

注意:我在配置中看到的唯一区别是跨域部分。 github上显示的设置屏幕截图将此字段为空,而我的有默认条目,但我不知道这是否真的有问题。

我做错了什么,但无法确定是什么......任何关于进一步调试的指针都会很棒!


----------------+++++++++++--------------

更新 2/1 **
谢谢迈克尔,似乎做出改变已经向前迈进了一步!

现在我得到一个灰色页面,而不是挂在“正在连接......”。
似乎现在正在建立连接。我不确定 PrivacyListError 是否很关键(纠正我)。
我查看了 candy.js 并且似乎如果该列表不存在,它将创建一个。
下一个错误似乎很关键,因为它谈到了服务不可用..

成功

SENT: <body rid='2569503371' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'><iq type='set' id='_session_auth_2' xmlns='jabber:client'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq></body> RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' id='_session_auth_2' to='b967c785@myservername.com/b967c785'/></body>  
[Connection] 
Connected [Jabber] 
Anonymous login 
[Connection] Attached

成功

POST http-bind/ 200 OK 101ms    

SENT: <body rid='2569503372' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'><presence xmlns='jabber:client'/><iq type='get' xmlns='jabber:client'><query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'/></query></iq><iq type='get' from='b967c785@myservername.com/b967c785' id='get1' xmlns='jabber:client'><query xmlns='jabber:iq:privacy'><list name='ignore'/></query></iq></body>
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' to='b967c785@myservername.com/b967c785'><query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'/></query></iq></body>
[Jabber] Bookmarks

错误

POST http-bind/ 200 OK 56ms 
SENT: <body rid='2569503373' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'/>    
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client'     type='error' id='get1' to='b967c785@myservername.com/b967c785'><query xmlns='jabber:iq:privacy'><list name='ignore'/></query><error code='503' type='cancel'>     <service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq></body>   
[Jabber] PrivacyListError

错误 - 这似乎更严重

POST http-bind/ 200 OK 74ms 
SENT: <body rid='2569503374' xmlns='http://jabber.org/protocol/httpbind' 
sid='b967c785'><iq type='set' from='b967c785@myservername.com/b967c785' id='set1'
 xmlns='jabber:client'><query xmlns='jabber:iq:privacy'><list name='ignore'><item 
action='allow' order='0'/></list></query></iq><iq type='set' 
from='b967c785@myservername.com/b967c785' id='set2' xmlns='jabber:client'><query 
xmlns='jabber:iq:privacy'><active name='ignore'/></query></iq></body>

RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' 
type='error' id='set1' to='b967c785@myservername.com/b967c785'><query 
xmlns='jabber:iq:privacy'><list name='ignore'><item action='allow' order='0'/></list>
</query><error code='503' type='cancel'><service-unavailable 
xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq></body>

错误 - 最后一个,在它挂在那里之前

POST http-bind/ 200 OK 60ms 
SENT: <body rid='2569503375' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'/>
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' 
type='error' id='set2' to='b967c785@myservername.com/b967c785'><query 
xmlns='jabber:iq:privacy'><active name='ignore'/></query><error code='503' type='cancel'>
<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq></body>

最后一个 ajax 调用被触发

POST http-bind/ 200 OK 60167ms  
SENT: <body rid='2569503376' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'/>
RECV: <body xmlns='http://jabber.org/protocol/httpbind'/>
POST http-bind/
SENT: <body rid='2569503377' xmlns='http://jabber.org/protocol/httpbind' sid='b967c785'/>
4

1 回答 1

4

您的 http-bind url 以及自动加入和连接函数调用的第一个参数似乎是错误的。

如果您正确配置了 HTTP 代理配置,标准的example/index.html应该可以工作。您只需要更改/添加自动加入参数并更改连接函数调用。

关于 autojoin 参数:您在 XMPP 服务器上配置了一个虚拟主机。您需要使用这个作为主机名,而不是 IP。所以它看起来像autojoin: ['Opentalk@conference.example.com']

这同样适用于connect()您需要提供 XMPP 服务器的虚拟主机名的第一个参数。

于 2013-01-31T07:16:21.773 回答