簡體   English   中英

Java中的SocketIO Client,如何實現與netty-socketio Server一起工作?

[英]SocketIO Client in Java, how to implement working with netty-socketio Server?

對於大學的實踐課程,我必須用Java編寫一個帶有客戶端/服務器基礎結構的小游戲。 我需要使用Websockets進行通信,其他學生的解決方案必須與我的兼容,為服務器端選擇了Netty SocketIO Server( https://github.com/mrniko/netty-socketio/tree/master/src )。 我已經知道如何設置服務器:



    Configuration config = new Configuration();
    config.setPort(1234);
    config.setHostname("localhost");

    server = new SocketIOServer(config);

    server.addConnectListener(
        (client) -> {
            System.out.println("Client has Connected!");
    });

    server.addEventListener("MESSAGE", String.class, 
        (client, message, ackRequest) -> {
            System.out.println("Client said: " + message);
    });

    server.start();

現在請你解釋一下,客戶端代碼應該如何,以及我應該使用SocketIOClient(Netty只帶來接口)的實現? 如果你能告訴我產生輸出的代碼會很棒

Client has connected!
Client said: any message you'd like :)

我真的被困在這里,已經在玩這樣的實現https://github.com/socketio/socket.io-client-java但仍然無法弄清楚如何構建客戶端並連接到我的服務器。 謝謝你的幫助。

費利克斯

你可以用

這是示例代碼。

public class MySocketClient {
    public static  void main(String args[]) {
        Options options = new Options();
        options.reconnection= true;
        Socket socket = IO.socket("URL of socket.io server");

        //socket.on

        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
              @Override
              public void call(Object... args) {
                  System.out.println("Connected");
              }

            })
            .on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
                  @Override
                  public void call(Object... args) {
                      System.out.println("Disonnected");
                  }

            });
        socket.connect();
    }
}

每個事件都可以為事件分配類。 即。

socket.on("myEvent", new MyEventListner())

和listner類是

class MyEventListner implements Listener{
    @Override
    public void call(Object... args) {
        System.out.println("myEvent, msg="+args[0].toString());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM