2015-01-10 50 views
0

我不明白爲什麼Ejabberd(14.07 & 14.12)在收到同一會話的「可用」節後關閉BOSH會話。Ejabberd在可用狀態下關閉BOSH會話

我正在使用JsJac作爲Web客戶端庫,並且會話正在預先綁定服務器端,JsJac在第一頁加載時執行'繼承',並在重新啓動時執行其他操作。發生這種情況是在成功連接和聊天后,我使用chrome開發人員工具禁用網絡連接。

Ejabberd每隔15秒ping一次,並在超時時間設置爲「kill」。 ejabberd.yml中BOSH的Inactivity_timeout設置爲480.

用戶可以單擊鏈接嘗試重新連接。這是調用與最初的預綁定+客戶端繼承完全相同的功能。看似成功的重新連接後,幾秒鐘後,這個:

Close session for [email protected]/7f317c7fcbb9fb1b79c414c2d8afe05c

出現在ejabberd日誌和不可用的節在聊天發送給對方。

問題:任何人都知道爲什麼BOSH會議可能會被關閉?

下面是相關一塊Ejabberd的日誌

2015-01-09 18:25:21.308 [debug] <0.2710.0>@ejabberd_receiver:process_data:343 Received XML on stream = <<"<presence from=\"[email protected]\" type=\"available\"/>">> 
2015-01-09 18:25:21.309 [debug] <0.2710.0>@shaper:update:117 State: {maxrate,50000,1899.4311619841992,1420824321273332}, Size=97 
M=0.9887812185897407, I=35.836 
2015-01-09 18:25:21.390 [info] <0.2709.0>@ejabberd_listener:accept:313 (#Port<0.41723>) Accepted connection ::FFFF:127.0.0.1:58483 -> ::FFFF:127.0.0.1:5280 
2015-01-09 18:25:21.391 [debug] <0.5331.0>@ejabberd_http:init:145 S: [{[<<"presence">>],mod_webpresence},{[<<"captcha">>],ejabberd_captcha},{[<<"admin">>],ejabberd_web_admin},{[<<"http-bind">>],mod_http_bind},{[<<"http-poll">>],ejabberd_http_poll}] 
2015-01-09 18:25:21.391 [info] <0.5331.0>@ejabberd_http:init:149 started: {gen_tcp,#Port<0.41723>} 
2015-01-09 18:25:21.392 [debug] <0.5331.0>@ejabberd_http:process_header:277 (#Port<0.41723>) http query: 'POST' /http-bind 
2015-01-09 18:25:21.392 [debug] <0.5331.0>@ejabberd_http:process_request:438 client data: <<"<body rid='876185' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='38516e6b293e317ee957f6ef74fa23c68a003d19'/>">> 
2015-01-09 18:25:21.392 [debug] <0.5331.0>@ejabberd_http:process:350 [<<"http-bind">>] matches [<<"http-bind">>] 
2015-01-09 18:25:21.393 [debug] <0.5331.0>@ejabberd_http:process:354 [{'Accept-Language',<<"en-US,en;q=0.8,es;q=0.6,und;q=0.4,nl;q=0.2,ca;q=0.2">>},{'Accept-Encoding',<<"gzip, deflate">>},{'Referer',<<"http://localhost:9080/">>},{'Accept',<<"*/*">>},{'Content-Type',<<"text/xml; charset=UTF-8">>},{'User-Agent',<<"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36">>},{<<"Origin">>,<<"http://localhost:9080">>},{'Content-Length',<<"158">>},{'Connection',<<"close">>},{'Host',<<"vagrant.localhost">>}] 
2015-01-09 18:25:21.393 [debug] <0.5331.0>@mod_http_bind:process:68 Incoming data: <body rid='876185' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='38516e6b293e317ee957f6ef74fa23c68a003d19'/> 
2015-01-09 18:25:21.393 [debug] <0.5331.0>@ejabberd_http_bind:parse_request:1128 --- incoming data --- 
<body rid='876185' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='38516e6b293e317ee957f6ef74fa23c68a003d19'/> 
--- END --- 
2015-01-09 18:25:21.394 [debug] <0.5331.0>@ejabberd_http_bind:http_put:792 Looking for session: <<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">> 
2015-01-09 18:25:21.394 [debug] <0.4052.0>@ejabberd_http_bind:handle_sync_event:440 New request: {http_put,876185,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876185">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"38516e6b293e317ee957f6ef74fa23c68a003d19">>}],[],158,1,<<>>,{{0,0,0,0,0,65535,32512,1},58483}} 
2015-01-09 18:25:21.395 [debug] <0.4052.0>@ejabberd_http_bind:handle_http_put_event:575 New request: {http_put,876185,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876185">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"38516e6b293e317ee957f6ef74fa23c68a003d19">>}],[],158,1,<<>>,{{0,0,0,0,0,65535,32512,1},58483}} 
2015-01-09 18:25:21.395 [debug] <0.4052.0>@ejabberd_http_bind:rid_allow:866 Previous rid/New rid: 876184/876185 
2015-01-09 18:25:21.396 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:608 Actually processing request: {http_put,876185,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876185">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"38516e6b293e317ee957f6ef74fa23c68a003d19">>}],[],158,1,<<>>,{{0,0,0,0,0,65535,32512,1},58483}} 
2015-01-09 18:25:21.396 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:619 Key/OldKey/NextKey: 38516e6b293e317ee957f6ef74fa23c68a003d19/85e12ff1c2c9590328a5f0a1e58c14e52a8c6c42/85e12ff1c2c9590328a5f0a1e58c14e52a8c6c42 
2015-01-09 18:25:21.397 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:659 -- SaveKey: 38516e6b293e317ee957f6ef74fa23c68a003d19 
2015-01-09 18:25:21.397 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:671 reqlist: [{hbr,876185,<<"85e12ff1c2c9590328a5f0a1e58c14e52a8c6c42">>,[]},{hbr,876184,<<"85e12ff1c2c9590328a5f0a1e58c14e52a8c6c42">>,[{xmlstreamelement,{xmlel,<<"presence">>,[{<<"from">>,<<"[email protected]">>},{<<"to">>,<<"[email protected]/cb_operator_1420818758533">>},{<<"type">>,<<"available">>},{<<"show">>,<<"chat">>}],[]}}]}] 
2015-01-09 18:25:21.398 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:717 really sending now: [] 
2015-01-09 18:25:31.193 [debug] <0.2648.0>@ejabberd_router:do_route:322 route 
    from {jid,<<>>,<<"localhost">>,<<>>,<<>>,<<"localhost">>,<<>>} 
    to {jid,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>} 
    packet {xmlel,<<"iq">>,[{<<"id">>,<<"4293567110">>},{<<"type">>,<<"get">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]} 
2015-01-09 18:25:31.194 [debug] <0.2648.0>@ejabberd_local:do_route:296 local route 
    from {jid,<<>>,<<"localhost">>,<<>>,<<>>,<<"localhost">>,<<>>} 
    to {jid,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>} 
    packet {xmlel,<<"iq">>,[{<<"id">>,<<"4293"...>>},{<<"type">>,<<...>>}],[{xmlel,<<...>>,...}]} 
2015-01-09 18:25:31.194 [debug] <0.2648.0>@ejabberd_sm:do_route:514 session manager 
    from {jid,<<>>,<<"localhost">>,<<>>,<<>>,<<"localhost">>,<<>>} 
    to {jid,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>} 
    packet {xmlel,<<"iq">>,[{<<"id">>,<<"4293"...>>},{<<"type">>,<<...>>}],[{xmlel,<<...>>,...}]} 
2015-01-09 18:25:31.194 [debug] <0.2648.0>@ejabberd_sm:do_route:612 sending to process <0.4053.0> 
2015-01-09 18:25:31.195 [debug] <0.5331.0>@ejabberd_http_bind:prepare_response:914 OutPacket: [{xmlstreamelement,{xmlel,<<"iq">>,[{<<"from">>,<<"localhost">>},{<<"to">>,<<"[email protected]/cb_operator_1420818758533">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"get">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}}] 
2015-01-09 18:25:31.195 [debug] <0.5331.0>@ejabberd_http_bind:send_outpacket:1056 --- outgoing data --- 
<body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' from='localhost' to='[email protected]/cb_operator_1420818758533' id='4293567110' type='get'><ping xmlns='urn:xmpp:ping'/></iq></body> 
--- END --- 
2015-01-09 18:25:31.228 [info] <0.2709.0>@ejabberd_listener:accept:313 (#Port<0.41753>) Accepted connection ::FFFF:127.0.0.1:58484 -> ::FFFF:127.0.0.1:5280 
2015-01-09 18:25:31.230 [debug] <0.5332.0>@ejabberd_http:init:145 S: [{[<<"presence">>],mod_webpresence},{[<<"captcha">>],ejabberd_captcha},{[<<"admin">>],ejabberd_web_admin},{[<<"http-bind">>],mod_http_bind},{[<<"http-poll">>],ejabberd_http_poll}] 
2015-01-09 18:25:31.231 [info] <0.5332.0>@ejabberd_http:init:149 started: {gen_tcp,#Port<0.41753>} 
2015-01-09 18:25:31.231 [debug] <0.5332.0>@ejabberd_http:process_header:277 (#Port<0.41753>) http query: 'POST' /http-bind 
2015-01-09 18:25:31.231 [debug] <0.5332.0>@ejabberd_http:process_request:438 client data: <<"<body rid='876186' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='9cffab80935471f419ce5c9201475df5935108d5'><iq xmlns=\"jabber:client\" to=\"localhost\" id=\"4293567110\" type=\"result\"><ping xmlns=\"urn:xmpp:ping\"/></iq></body>">> 
2015-01-09 18:25:31.231 [debug] <0.5332.0>@ejabberd_http:process:350 [<<"http-bind">>] matches [<<"http-bind">>] 
2015-01-09 18:25:31.232 [debug] <0.5332.0>@ejabberd_http:process:354 [{'Accept-Language',<<"en-US,en;q=0.8,es;q=0.6,und;q=0.4,nl;q=0.2,ca;q=0.2">>},{'Accept-Encoding',<<"gzip, deflate">>},{'Referer',<<"http://localhost:9080/">>},{'Accept',<<"*/*">>},{'Content-Type',<<"text/xml; charset=UTF-8">>},{'User-Agent',<<"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36">>},{<<"Origin">>,<<"http://localhost:9080">>},{'Content-Length',<<"269">>},{'Connection',<<"close">>},{'Host',<<"vagrant.localhost">>}] 
2015-01-09 18:25:31.233 [debug] <0.5332.0>@mod_http_bind:process:68 Incoming data: <body rid='876186' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='9cffab80935471f419ce5c9201475df5935108d5'><iq xmlns="jabber:client" to="localhost" id="4293567110" type="result"><ping xmlns="urn:xmpp:ping"/></iq></body> 
2015-01-09 18:25:31.233 [debug] <0.5332.0>@ejabberd_http_bind:parse_request:1128 --- incoming data --- 
<body rid='876186' sid='a1e29cded4325f591bdc5b3646a8f3c78553cdd8' xmlns='http://jabber.org/protocol/httpbind' key='9cffab80935471f419ce5c9201475df5935108d5'><iq xmlns="jabber:client" to="localhost" id="4293567110" type="result"><ping xmlns="urn:xmpp:ping"/></iq></body> 
--- END --- 
2015-01-09 18:25:31.234 [debug] <0.5332.0>@ejabberd_http_bind:http_put:792 Looking for session: <<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">> 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:handle_sync_event:440 New request: {http_put,876186,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876186">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"9cffab80935471f419ce5c9201475df5935108d5">>}],[{xmlel,<<"iq">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"to">>,<<"localhost">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"result">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}],269,1,<<>>,{{0,0,0,0,0,65535,32512,1},58484}} 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:handle_http_put_event:575 New request: {http_put,876186,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876186">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"9cffab80935471f419ce5c9201475df5935108d5">>}],[{xmlel,<<"iq">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"to">>,<<"localhost">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"result">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}],269,1,<<>>,{{0,0,0,0,0,65535,32512,1},58484}} 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:rid_allow:866 Previous rid/New rid: 876185/876186 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:608 Actually processing request: {http_put,876186,[{<<"xmlns">>,<<"http://jabber.org/protocol/httpbind">>},{<<"rid">>,<<"876186">>},{<<"sid">>,<<"a1e29cded4325f591bdc5b3646a8f3c78553cdd8">>},{<<"key">>,<<"9cffab80935471f419ce5c9201475df5935108d5">>}],[{xmlel,<<"iq">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"to">>,<<"localhost">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"result">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}],269,1,<<>>,{{0,0,0,0,0,65535,32512,1},58484}} 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:619 Key/OldKey/NextKey: 9cffab80935471f419ce5c9201475df5935108d5/38516e6b293e317ee957f6ef74fa23c68a003d19/38516e6b293e317ee957f6ef74fa23c68a003d19 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:659 -- SaveKey: 9cffab80935471f419ce5c9201475df5935108d5 
2015-01-09 18:25:31.234 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:671 reqlist: [{hbr,876186,<<"38516e6b293e317ee957f6ef74fa23c68a003d19">>,[]},{hbr,876185,<<"38516e6b293e317ee957f6ef74fa23c68a003d19">>,[{xmlstreamelement,{xmlel,<<"iq">>,[{<<"from">>,<<"localhost">>},{<<"to">>,<<"[email protected]/cb_operator_1420818758533">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"get">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}}]}] 
2015-01-09 18:25:31.235 [debug] <0.4052.0>@ejabberd_http_bind:process_http_put:717 really sending now: [{xmlel,<<"iq">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"to">>,<<"localhost">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"result">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]}] 
2015-01-09 18:25:31.235 [debug] <0.4053.0>@ejabberd_router:do_route:322 route 
    from {jid,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>} 
    to {jid,<<>>,<<"localhost">>,<<>>,<<>>,<<"localhost">>,<<>>} 
    packet {xmlel,<<"iq">>,[{<<"to">>,<<"localhost">>},{<<"id">>,<<"4293567110">>},{<<"type">>,<<"result">>}],[{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]} 
2015-01-09 18:25:31.235 [debug] <0.4053.0>@ejabberd_local:do_route:296 local route 
    from {jid,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>,<<"agent1">>,<<"localhost">>,<<"cb_operator_1420818758533">>} 
    to {jid,<<>>,<<"localhost">>,<<>>,<<>>,<<"localhost">>,<<>>} 
    packet {xmlel,<<"iq">>,[{<<"to">>,<<"loca"...>>},{<<"id">>,<<...>>},{<<...>>,...}],[{xmlel,<<...>>,...}]} 
2015-01-09 18:25:31.570 [info] <0.5318.0>@ejabberd_c2s:terminate:1757 ({socket_state,ejabberd_http_bind,{http_bind,<0.5317.0>,{{0,0,0,0,0,65535,32512,1},58451}},ejabberd_http_bind}) Close session for [email protected]/2b8e1ac2921d6d3713396edff70a0d2a 
2015-01-09 18:25:31.571 [debug] <0.5318.0>@mod_pubsub:node_action:5143 node_action <<"pubsub.localhost">> <<"flat">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.571 [debug] <0.5318.0>@mod_pubsub:node_call:5124 node_call <<"flat">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.571 [debug] <0.5318.0>@mod_pubsub:node_action:5143 node_action <<"pubsub.localhost">> <<"hometree">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.572 [debug] <0.5318.0>@mod_pubsub:node_call:5124 node_call <<"hometree">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.572 [debug] <0.5318.0>@mod_pubsub:node_action:5143 node_action <<"pubsub.localhost">> <<"pep">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.572 [debug] <0.5318.0>@mod_pubsub:node_call:5124 node_call <<"pep">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"anonymous.c6502a950667fc79c3e1534559cc02e0">>,<<"localhost">>,<<"2b8e1ac2921d6d3713396edff70a0d2a">>}] 
2015-01-09 18:25:31.573 [debug] <0.5318.0>@mod_carboncopy:disable:246 disabling for <<"anonymous.c6502a950667fc79c3e1534559cc02e0">> 
2015-01-09 18:25:31.574 [debug] <0.5318.0>@mod_shared_roster:unset_presence:1081 unset_presence for <<"anonymous.c6502a950667fc79c3e1534559cc02e0">> @ <<"localhost">>/<<"2b8e1ac2921d6d3713396edff70a0d2a">> -> <<>> (0 resources) 
2015-01-09 18:25:31.574 [debug] <0.5318.0>@ejabberd_router:do_route:322 route 

更多的日誌在這裏。 https://gist.github.com/Elexy/052a6a428fb57147bf4e

回答

0

我解決了我自己的問題。

  1. 我已經將mod_ping設置爲KILL會話,我相信BOSH連接管理器和mod_ping都會終止會話。我現在將mod_ping更改爲'timeout_action'爲'none',並讓BOSH連接管理器處理斷開連接檢測。

  2. 繼承連接必須用BOSH客戶端通常從初始bosh響應接收的參數「預加載」。在我的情況下,依靠傳統的代碼中,「輪詢」 paramater設定爲5時BOSH連接管理器響應2.

JsJac是的「要求」 TIMEPERIOD內的最多5個新的請求響應2秒。

所以我的邏輯是這樣的:mod_ping將每15秒發送一次ping,BOSH連接管理器將檢查ping或其他任何節是否在4秒內得到響應。

下面是從Ejabberd BOSH連接管理器的初始響應:

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:xmpp="urn:xmpp:xbosh" xmlns:stream="http://etherx.jabber.org/streams" sid="42e11a86ecba387ef5f53f5b86d38a8c7dc9ef5a" wait="300" requests="2" inactivity="480" maxpause="120" polling="2" ver="1.8" from="localhost" secure="true" authid="3627063868" xmpp:version="1.0"><stream:features xmlns:stream="http://etherx.jabber.org/streams"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/><sm xmlns="urn:xmpp:sm:2"/><sm xmlns="urn:xmpp:sm:3"/><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.process-one.net/en/ejabberd/" ver="/nWL9StXSXhEsL2wg0+s4xo/UdA="/><register xmlns="http://jabber.org/features/iq-register"/></stream:features></body> 

和我,現在的工作,JS代碼:

args.polling = 2; 
    args.inactivity = 4; 
    args.requests = 2; 
    args.wait = 300; 

    self.connection.inherit(args); 

附:在閱讀http://xmpp.org/extensions/xep-0124.html後,我將靜止狀態設置爲4秒,以便更快地檢測斷開連接。