2017-04-13 2 views
1

Travailler sur son propre client IRC et poser quelques questions. Lorsque je rejoins un canal, j'obtiens plusieurs réponses du serveur IRC après avoir envoyé la commande JOIN. Ils se produisent dans cet ordre:Commande JOIN pour le protocole IRC

-Server répète/commande JOIN vérifie

-Server envoie le sujet du canal

-Server envoie la liste des utilisateurs dans le canal rejoint (ce qui peut parfois être envoyé en morceaux, en raison à la limitation de taille de message sur IRC).

Première question: ce flux est-il correct?

Deuxième question: Suis-je certain que le serveur enverra tout ce dont il a besoin avant d'envoyer plus de commandes. (Par exemple, si je REJOIGNE une chaîne, quelqu'un arrive à envoyer un PRIVMSG avant que la réponse JOIN complète ne soit terminée, le serveur finira-t-il le JOIN avant d'envoyer le PRIVMSG)

J'espère que cela a du sens! Merci

Répondre

0

Oui, vous devez toujours obtenir le JOIN du serveur avant tout autre événement de canal comme PRIVMSG.

0

Première question: ce flux est-il correct?

Oui. Pour la commande JOIN, le serveur enverra les trois réponses suivantes.

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

Deuxième question: Suis-je assuré que le serveur envoie tout le nécessaire avant envoi d'autres commandes. (Par exemple si j'adhérez à un canal, quelqu'un arrive à envoyer un PRIVMSG avant la complète REJOIGNEZ réponse est terminée, va serveur terminer le REJOIGNEZ avant d'envoyer le PRIVMSG)

Oui, nous pouvons être sûrs. Avant de terminer le processus JOIN, le serveur ne doit envoyer aucun message à ce canal. PS: l'envoi de la réponse 3 est obligatoire dans certains clients pour compléter un processus de commande JOIN alors que certains clients procéderont seuls avec 1 et 2.