Xmpp ejabberd MUC-SUB事件通知,直到MUC邀请被接受
我正在使用Ejabberd的MucSub方法实现一个移动群组聊天客户端。用户创建文件室并向必须是此组成员的用户发送MUC邀请。客户端配置为自动接受MUC邀请,然后为各种事件订阅文件室的pubsub节点 然而,问题在于,非在线的用户在未订阅节点之前不会收到任何已发布的事件,并且只有在用户在线一次之后才会发生,因此不可能向此类用户发送这些事件的推送通知Xmpp ejabberd MUC-SUB事件通知,直到MUC邀请被接受,xmpp,ejabberd,publish-subscribe,multiuserchat,Xmpp,Ejabberd,Publish Subscribe,Multiuserchat,我正在使用Ejabberd的MucSub方法实现一个移动群组聊天客户端。用户创建文件室并向必须是此组成员的用户发送MUC邀请。客户端配置为自动接受MUC邀请,然后为各种事件订阅文件室的pubsub节点 然而,问题在于,非在线的用户在未订阅节点之前不会收到任何已发布的事件,并且只有在用户在线一次之后才会发生,因此不可能向此类用户发送这些事件的推送通知 实现这一点的方法是什么?向给定用户发送邀请是作为直接消息发送给用户的。它还存储在脱机存储中,因此用户将在重新连接时获取它 例如: UserA为roo
实现这一点的方法是什么?向给定用户发送邀请是作为直接消息发送给用户的。它还存储在脱机存储中,因此用户将在重新连接时获取它 例如:
room@conference.localhost
发送给用户B,用户B处于脱机状态:
<message to='room@conference.localhost'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<invite to='userB@localhost'/>
</x>
</message>
<message from="room@conference.localhost" type="normal" to="userB@localhost">
<x xmlns="http://jabber.org/protocol/muc#user">
<invite from="userA@localhost/laptop">
<reason/>
</invite>
</x>
<x xmlns="jabber:x:conference" jid="room@conference.localhost"/>
<body>userA@localhost/laptop invites you to the room room@conference.localhost</body>
<delay xmlns="urn:xmpp:delay" from="localhost" stamp="2016-11-09T08:10:58.063Z">Offline Storage</delay>
</message>
userA@localhost/笔记本电脑邀请您到房间room@conference.localhost
离线存储
当userB在connect上接收到脱机消息时,他可以订阅MUC事件。向给定用户发送邀请将作为直接消息发送给用户。它还存储在脱机存储中,因此用户将在重新连接时获取它 例如:
room@conference.localhost
发送给用户B,用户B处于脱机状态:
<message to='room@conference.localhost'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<invite to='userB@localhost'/>
</x>
</message>
<message from="room@conference.localhost" type="normal" to="userB@localhost">
<x xmlns="http://jabber.org/protocol/muc#user">
<invite from="userA@localhost/laptop">
<reason/>
</invite>
</x>
<x xmlns="jabber:x:conference" jid="room@conference.localhost"/>
<body>userA@localhost/laptop invites you to the room room@conference.localhost</body>
<delay xmlns="urn:xmpp:delay" from="localhost" stamp="2016-11-09T08:10:58.063Z">Offline Storage</delay>
</message>
userA@localhost/笔记本电脑邀请您到房间room@conference.localhost
离线存储
当userB在connect上收到脱机消息时,他可以订阅MUC事件。Yes@Mickaël Rémond,这正是我实现它的方式,唯一的问题是我希望在用户接受邀请并订阅之前为发送到房间的消息生成推送通知。我们有没有可能以某种方式实现这一点?嗯,这是一个自定义用例,所以您必须以某种方式自己实现它。大多数部署不希望在用户接受邀请之前推送聊天室中所有消息的通知。这感觉像是推送垃圾邮件。是的@Mickaël Rémond,这正是我实现它的方式,我唯一的问题是我想在用户接受邀请和订阅之前为发送到房间的消息生成推送通知。我们有没有可能以某种方式实现这一点?嗯,这是一个自定义用例,所以您必须以某种方式自己实现它。大多数部署不希望在用户接受邀请之前推送聊天室中所有消息的通知。感觉像是推送垃圾邮件。