【问题标题】:Identification of the sender in xmpp(jabber) protocolxmpp(jabber) 协议中发送者的标识
【发布时间】:2010-12-07 18:47:02
【问题描述】:

我不明白如何确定通过 jabber 协议发送的消息的发件人。如果我收到消息,则 xml 看起来像这样:

<message from="sharok1989@qip.ru/QIP" to="sharok89@gmail.com/Talk.v10576F328E0" stime="1291746351249" xml:lang="ru" type="chat" id="qip_45">
    <body>Hi. I'm fine.</body>
    <active xmlns="http://jabber.org/protocol/chatstates"/>
</message>

fromto 属性。
如果我发送消息,则 xml 看起来像这样:

<message to="sharok1989@qip.ru" type="chat" id="42">
    <body>Hello. How are you?</body>
    <active xmlns="http://jabber.org/protocol/chatstates"/>
</message>

没有来自的属性。客户如何知道谁给他发了消息?

对不起我的英语。谢谢。

【问题讨论】:

    标签: c# xmpp


    【解决方案1】:

    XMPP 服务器需要验证“发件人”属性(如果指定)(以验证发送者没有尝试模拟另一个客户端),或者添加“发件人”属性(如果未指定)。通常,您可以省略“来自”并假设服务器将根据客户端连接的 JID 附加一个。

    请参阅RFC 3920(链接到“XML 节”部分)了解具体规则。

    【讨论】:

    • 那我需要捕获授权过程并保存JID和IP地址?我理解正确吗?
    • @user348173 - 您要从发件人那里寻找什么“身份证明”? JID 本身就是 XMPP 中的标识...
    • 跟踪您自己的 JID 有几个原因,其中最重要的是,您可以知道哪些状态通知来自您自己的连接,因此您可以忽略它们。使用该 JID 作为发件人地址并不是一个好的理由。正如格雷格所说,你应该(几乎)总是忽略发件人地址。你的服务器会做正确的事,这样当你的联系人收到消息时,发件人地址就会被正确设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2017-09-15
    • 1970-01-01
    • 2013-01-07
    • 2014-06-25
    • 2016-02-09
    • 1970-01-01
    相关资源
    最近更新 更多