Отправка сообщения всем браузерам с помощью сокета io на основе Java для netty - PullRequest
1 голос
/ 05 января 2012

В настоящее время я пытаюсь отправить сообщение всем браузерам из Java-клиента для сокета io socket.io-netty . Но в настоящее время он отправляет сообщение только одному браузеру за раз.фрагмент выглядит следующим образом:

public class IOClientListener implements INSIOHandler {
    private INSIOClient ioClient=null;
    private final static Logger log=LoggerFactory.getLogger(IOClientListener.class);

    @Override
    public void OnConnect(INSIOClient client) {
        System.out.println("A user connected :: " + client.getSessionID());
                client.send("Hey you are connected to myhope.com");

    }

    @Override
    public void OnDisconnect(INSIOClient client) {
        System.out.println("A user disconnected :: " + client.getSessionID() + " :: hope it was fun");  
    }

    @Override
    public void OnMessage(INSIOClient client, String message) {
        System.out.println("A message received:: " + message + " :: hope it was fun");
    }

    @Override
    public void OnShutdown() {
    }

    public INSIOClient getIOClient(){
        return this.ioClient;
    }
}

Я хочу знать, как передать сообщение с помощью этого клиента.Заранее спасибо

1 Ответ

2 голосов
/ 05 января 2012

вы можете использовать Netty ChannelGroup для этой цели

....
 static ChannelGroup allClientChannels = new DefaultChannelGroup();


 @Override
public void OnConnect(INSIOClient client) {
    System.out.println("A user connected :: " + client.getSessionID());
            client.send("Hey you are connected to myhope.com");

   allClientChannels.add(client.getCTX().getChannel());
}


@Override
public void OnDisconnect(INSIOClient client) {
    System.out.println("A user disconnected :: " + client.getSessionID() + " :: hope it was fun");
    allClientChannels.remove(client.getCTX().getChannel());

}

...

//when you want to send a broadcase message

allClientChannels.write(yourMessage);

Для получения более подробной информации смотрите ChannelGroup API Doc

...