via*_*ian 12 javascript xmpp strophe punjab
我已经实现了一个chrome扩展,允许在远程服务器上运行的punjab服务器上使用BOSH连接进行XMPP聊天.它是使用javascript Strophe库实现的.我遇到的问题是当我有同一个用户的多个会话时(例如同一台机器上的两个不同的浏览器)我无法接收并登录我从第一个聊天窗口发送的消息的第二个聊天窗口.需要有一些机制允许这样做.我可以以某种方式接收我发送给其他用户的消息吗?该问题也可以在2台或更多台机器上重现,因此这也需要解决.
谢谢.
ggo*_*zad 27
您需要了解JID的工作原理,优先级以及如何发送消息.
JID的形式如下: user@domain/resource
登录用户的JID必须是唯一的.通常,当您使用Web客户端时,您会为每个会话分配一个随机资源,以便不会发生冲突.
现在,当用户发送消息时to,该<message>节的属性指定消息的接收者.如果资源是收件人的一部分,那么只有该JID才会收到该消息.如果收件人是一个裸JID(用户@域),那么优先级就会发挥作用(见这里):
您可以在发送状态时设置优先级([-128,127]中的整数)(例如,参见rfc获取完整规范):
<presence>
<status>Learning XMPP</status>
<priority>1</priority>
</presence>
Run Code Online (Sandbox Code Playgroud)
Zas*_*ash 11
如果您想要进行整个对话,包括您从客户端发送的消息以显示在另一个会话中,那么Carbons就是您正在寻找的功能.我在一个插件来实现这个的韵律.
所需的客户端部分不应该太难写,这是在Verse库中完成的.
| 归档时间: |
|
| 查看次数: |
10895 次 |
| 最近记录: |