在大学的一个实践课程,我必须在Java写一个小游戏,使用客户机/服务器基础设施。我需要使用Websockets进行通信,而其他学生(他们的解决方案必须与我的兼容)选择了Netty SocketIO服务器作为服务器端(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-,但是仍然不知道如何构建客户机并连接到我的服务器。谢谢你的帮助。
费利克斯
你可以用这个
下面是示例代码。
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();
}
}
您可以为每个事件拥有seprate类。即。
socket.on("myEvent", new MyEventListner())
而listner类是
class MyEventListner implements Listener{
@Override
public void call(Object... args) {
System.out.println("myEvent, msg="+args[0].toString());
}
}
这是一个Socket.IO服务器端实现,基于netty框架,适合于 socket.io 0.9-1.0版本(虽然socket.io 目前还处于 0.9版本,会支持到1.0)
Netty-socketio 是一个 Java 语言版本的 Socket.IO 服务器的实现,基于 Netty 框架开发。 特性: Supports 0.7...0.9.16 (netty-socketio 1.6.6) and 1.0+ (netty-socketio latest version) version of Socket.IO-client Supports xhr-polling
我将创建一个身份验证服务器,它本身与一组不同的Oauth2.0服务器交互。Netty似乎是在这里实现网络部分的一个很好的候选者。但在开始之前,我需要澄清一些关于netty的细节,因为我是新手。例行程序如下: > < li> 服务器接受来自客户端的HTTPS连接。 然后,不关闭第一个连接,它通过HTTPS与远程OAuth2.0服务器建立另一个连接并获取数据 毕竟,服务器将结果发送回客户端,客户端应该
似乎服务器拒绝了wireshark输出中的tls协商,但我从代码中看不出原因。它是基于工作的代码,只是它被否决了,因此我用新的API更新。代码是开始。需要使用真实的证书。有人知道为什么服务器发送tcp FIN,ack吗? 我有以下服务器代码: 23 16.856111 sonymobi_7f:55:af intelcor_25:1d:fc ARP 42 10.1.10.100在84:c7:ea:7
我需要在netty中有一个客户机/服务器通信,用于我的项目目的之一。所以我刚开始用一个handsOn来改进,我正在学习netty,我是一个初学者。 我尝试了一个简单的客户端服务器与Netty聊天。 客户端和服务器正在初始化,我可以看到服务器能够获得用于建立连接的客户端管道,但是当客户端发送消息时,它没有进入ServerAdapterHandler的messageReceived部分。下面是我的源代
在本节中,我们将构建一个完整的的 Netty客 户端和服务器。虽然你可能集中在写客户端是浏览器的基于 Web 的服务,接下来你将会获得更完整了解 Netty 的 API 是如何实现客户端和服务器的。 Figure 2.1.Echo client / server 图中显示了连接到服务器的多个并发的客户端。在理论上,客户端可以支持的连接数只受限于使用的 JDK 版本中的制约。 echo(回声)客户端