fel*_*lef 5 java websocket netty socket.io
对于大学的实践课程,我必须用 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 只提供接口)?如果您能向我展示产生输出的代码,那就太好了
客户端已连接! 客户说:你想要的任何消息:)
我真的被困在这里并且已经在玩这样的实现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();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以为每个事件设置单独的课程。IE。
socket.on("myEvent", new MyEventListner())
Run Code Online (Sandbox Code Playgroud)
监听器类是
class MyEventListner implements Listener{
@Override
public void call(Object... args) {
System.out.println("myEvent, msg="+args[0].toString());
}
}
Run Code Online (Sandbox Code Playgroud)