2017-04-13 157 views
1

使用自己的IRC客戶端並且有一些問題。IRC協議的JOIN命令

當我加入一個頻道時,在發送JOIN命令後,我從IRC服務器收到多個響應。它們發生在順序如下:

-Server重複/驗證JOIN命令

-Server發送頻道主題

-Server發送在加入信道的用戶列表(其可以在某個時候塊被髮送,因IRC上的消息大小限制)。

第一個問題:流量是否正確?

第二個問題:我保證服務器會在發送更多命令之前發送所需的所有東西。 (例如,如果我加入一個頻道,那麼在完成JOIN響應完成之前有人發送PRIVMSG,服務器在發送PRIVMSG之前完成加入)

我希望這是有道理的! 謝謝

回答

0

是的,你應該在任何其他頻道事件如PRIVMSG之前始終從服務器獲取JOIN。

0

第一個問題:流量是否正確?

是的。對於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

第二個問題:我保證更多的指令被髮送之前服務器將發送所需要的一切。 (例如,如果我加入一個通道,然後有人碰巧發出PRIVMSG前完成加入響應建成後,將服務器發送PRIVMSG前完成JOIN)

是的,我們可以肯定的。在完成JOIN過程之前,服務器不應該向該通道發送任何消息。

PS:發送響應3必須在某些客戶端完成JOIN命令過程,而某些客戶端將單獨進行1和2。