【问题标题】:JOIN command for IRC ProtocolIRC 协议的 JOIN 命令
【发布时间】:2017-04-13 18:46:21
【问题描述】:

使用自己的 IRC 客户端并有一些问题。

当我加入频道时,我在发送 JOIN 命令后收到来自 IRC 服务器的多个响应。它们按以下顺序出现:

-服务器重复/验证 JOIN 命令

-服务器发送频道主题

-服务器发送加入频道中的用户列表(有时可以分块发送,由于 IRC 的消息大小限制)。

第一个问题:这个流程正确吗?

第二个问题:我是否保证服务器会在发送更多命令之前发送所需的所有内容。 (例如,如果我加入一个频道,那么有人恰好在完整的 JOIN 响应完成之前发送了一个 PRIVMSG,服务器会在发送 PRIVMSG 之前完成 JOIN)

我希望这是有道理的! 谢谢

【问题讨论】:

    标签: irc


    【解决方案1】:

    第一个问题:这个流程正确吗?

    是的。对于 JOIN 命令,服务器将发送以下三个响应。

    回复 1::<UserJID> JOIN :<ChannelName>
    回复 2::<Domain> <[RPL_TOPIC][1]> <NickName> <ChannelName> :<Topic>
    回复 3:
    :<Domain> <[RPL_NAMREPLY][1]> <NickName> = <ChannelName> : <NameList> :<Domain> <[RPL_ENDOFNAMES][1]> <NickName> <ChannelName> :End of Names list

    第二个问题:我是否保证服务器会在发送更多命令之前发送所需的所有内容。 (例如,如果我加入一个频道,那么有人恰好在完整的 JOIN 响应完成之前发送了一个 PRIVMSG,服务器会在发送 PRIVMSG 之前完成 JOIN)

    是的,我们可以确定。在完成 JOIN 过程之前,服务器不应向该通道发送任何消息。

    PS:在某些客户端中必须发送响应 3 才能完成 JOIN 命令过程,而某些客户端将单独执行 1 和 2。

    【讨论】:

      【解决方案2】:

      是的,您应该始终在任何其他通道事件(如 PRIVMSG)之前从服务器获取 JOIN。

      【讨论】:

        猜你喜欢
        • 2011-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        • 2011-11-04
        相关资源
        最近更新 更多