Netty - comment obtenir tous les clients canal?
J'ai été en utilisant netty exemple des codes - paquet telnet, Maintenant, le code peut établir le serveur et le client de chat à l'aide de telnet, mais le client ne peut pas parler de serveur. Je suis à le réécrire pour rendre les clients peuvent parler à tous les clients, j'ai donc besoin de garder une liste de canaux, de sorte que lorsqu'un client est de communiquer avec le serveur, le serveur peut envoyer le message à tous les clients.
Quelqu'un peut me dire comment pourrais-je obtenir tous les clients canal?
(L'exemple de code est entrez description du lien ici)
avez-vous réussi à obtenir tous les clients canaux correctement?
OriginalL'auteur chentingpc | 2012-04-29
Vous devez vous connecter pour publier un commentaire.
Pour Netty 4.0.X
Dans la Classe principale que vous devez déclarer le ChannelGroup objet:
Quand un nouveau client est connecté (vous devez passer les canaux de l'objet dans le constructeur pour vous de gestionnaire de classe):
Pour obtenir tous les clients, juste à parcourir les canaux de l'objet:
Espère que cela aide.
OriginalL'auteur HCarrasko
Mauricio de la proposition en est une bonne. En outre, la Netty API fournit déjà un canal contenant dans le ChannelGroup. Il est thread-safe et fournit également plusieurs fonctionnalités supplémentaires telles que les opérations du groupe sur tous les contenus des chaînes et la suppression automatique de contenu de canaux lorsqu'ils sont fermés. À partir de la javadoc:
OriginalL'auteur Nicholas
voici un petit exemple (remplace channelConnected de SimpleChannelUpstreamHandler):
vous pouvez maintenant envoyer des messages à tous les canaux connectés comme suit:
compte tenu de l'exemple dans la documentation, comment puis-je obtenir le canal de la client?? (dans l'exemple: channelA, channelB..)
OriginalL'auteur Jonas Adler
À la channelConnected cas, prenez le client à partir du ChannelHandlerContext et de le stocker quelque part (une collecte simultanée serait sympa, comme ConcurrentHashMap). Vous aurez également à mettre en œuvre les channelClosed méthode pour supprimer l'déconnecté de canal à partir de votre collection.
OriginalL'auteur Maurício Linhares