2
我使用http://xmppjs.prosody.im/編碼xmpp組件。我想發送消息給一個jid,但只有當用戶在線。什麼是最快/最有效的方式來實現這一點。xmpp組件:只有在jid在線時發送消息
我想檢測這個,例如我可以在用戶離線時發送電子郵件。
我使用http://xmppjs.prosody.im/編碼xmpp組件。我想發送消息給一個jid,但只有當用戶在線。什麼是最快/最有效的方式來實現這一點。xmpp組件:只有在jid在線時發送消息
我想檢測這個,例如我可以在用戶離線時發送電子郵件。
無論JID是否在線,都會發送類型爲'headline'的消息。如果收件人處於脫機狀態,標題消息不應存儲以供以後傳送。
這種方法比其他任何你可以做的更快更便攜。
如果MUST做不同的基於用戶是否在線的東西,你就需要訂閱該用戶的存在:
<presence type='subscribe' from='my.component' to='[email protected]'/>
用戶將不得不接受你的要求:
<presence type='subscribed' to='my.component' from='[email protected]'/>
用戶還可以訂閱回您的組件:
<presence type='subscribe' to='my.component' from='[email protected]'/>
你可以做那些你選擇的東西;最容易做的事情是隻接受他們:
<presence type='subscribe' from='my.component' to='[email protected]'/>
你需要他們的存在每一次,或每您的組件啓動時,它需要一個探頭髮送給該用戶:
<presence type='probe' from='my.component' to='[email protected]'/>
然後您將返回每個用戶資源的存在。沒有辦法告訴你什麼時候完成。如果你想在用戶離線時採取行動,你只需要選擇一個超時值,然後如果你收到一個存在就停止計時器。由於用戶無論如何都離線,所以額外的延遲通常不是一個大問題。
請注意,如果您接受上述用戶的狀態訂閱,則會從該用戶那裏獲取探針;您可以忽略它們,也可以使用描述您的運營狀態的存在節作爲響應。
感謝您的更新:) – Alfred 2010-09-18 14:22:29
XMPP組件是否可以代表用戶發送節(例如訂閱)? – Jus12 2011-06-02 02:55:50
這取決於服務器。您必須能夠通過發送用戶的服務器上的業務邏輯來路由訂閱,這是正常組件協議不允許的。 – 2011-06-02 05:40:39