Проблема Ejabberd и Strophe: "прекратить: удаление сессии"

Я "борюсь" с этой проблемой более 3 дней и погуглил все, что может прийти мне в голову.

Итак, я хочу настроить Strophe и Ejabberd, чтобы создать простое приложение для чата. Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я пытаюсь подключиться с помощью Strophe к серверу XMPP, он остается со статусом CONNECTING. В случае, если я использую прокси-сервер Apache/Nginx - я получаю ошибку 502 Proxy.

upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /http-bind HTTP/1.1", upstream: "http://127.0.0.1:5280/http-bind"

В случае, если я использую прямое подключение к http-bind с помощью flXHR - в браузере ничего не происходит. Просто остается в состоянии СОЕДИНЕНИЯ.

Машина, с которой я сталкиваюсь, имеет Fedora 12 и Ejabberd 2.1.4.

В ejabberd.log у меня есть это:

=INFO REPORT==== 2010-07-15 14:41:55 ===
D(<0.831.0>:ejabberd_http_bind:1105) : --- incoming data --- 
<body rid='2423401616' xmlns='http://jabber.org/protocol/httpbind' to='localhost' 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'/>
 --- END --- 

=INFO REPORT==== 2010-07-15 14:41:55 ===
D(<0.831.0>:ejabberd_http_bind:117) : Starting session

=INFO REPORT==== 2010-07-15 14:41:55 ===
D(<0.832.0>:ejabberd_http_bind:294) : started: {"2e62ed526291d8b55024cbaa9698164715e70026",
                                                [],
                                                {{127,0,0,1},45679}}

=INFO REPORT==== 2010-07-15 14:41:55 ===
I(<0.833.0>:ejabberd_net:25) : gethostname {socket_state,ejabberd_http_bind,
                                            {http_bind,<0.832.0>,
                                             {{127,0,0,1},45679}},
                                            ejabberd_http_bind}


=INFO REPORT==== 2010-07-15 14:41:58 ===
D(<0.369.0>:ejabberd_receiver:320) : Received XML on stream = " "

=INFO REPORT==== 2010-07-15 14:42:00 ===
D(<0.832.0>:ejabberd_http_bind:531) : terminate: Deleting session 2e62ed526291d8b55024cbaa9698164715e70026

=INFO REPORT==== 2010-07-15 14:42:00 ===
D(<0.832.0>:ejabberd_http_bind:532) : terminate: _Reason normal

=INFO REPORT==== 2010-07-15 14:42:00 ===
D(<0.831.0>:ejabberd_http_bind:237) : got pid: <0.832.0>

=INFO REPORT==== 2010-07-15 14:42:00 ===
D(<0.831.0>:ejabberd_http_bind:267) : Create session: "2e62ed526291d8b55024cbaa9698164715e70026"

=INFO REPORT==== 2010-07-15 14:42:00 ===
D(<0.831.0>:ejabberd_http_bind:789) : Looking for session: "2e62ed526291d8b55024cbaa9698164715e70026"

На самом деле в Ubuntu 10.4 нет проблем с такой же настройкой (тем же javascript / html и тем же ejabberd.cfg). Я нашел два отличия между рабочими и не рабочими настройками. Во-первых, на машине с Ubuntu у меня есть ejabberd 2.1.2-2, а на проблемной машине Fedora - 2.1.3 (я пробовал и 2.1.4). Во-вторых, на компьютере, где он работает, в журналах отсутствуют "gethostname" и "terminate: Deleting session". Поэтому я думаю, что проблема связана с "удалением сессии" и связана с "gethostname", однако у меня недостаточно опыта, чтобы решить эту проблему.

Любая помощь или подсказка о том, как отлаживать в дальнейшем это будет оценено. Заранее спасибо.

0 ответов

Другие вопросы по тегам