netty-socketio 读取 socket.io 数据?
netty-socketio read socket.io data?
我正在使用以下项目构建 socket.io server: https://github.com/mrniko/netty-socketio
我的服务器:
public class ServerTest {
public static void main(String... args) {
Configuration config = new Configuration();
config.setPort(8080);
config.setAuthorizationListener(new AuthorizationListener() {
public boolean isAuthorized(HandshakeData handshakeData) {
System.out.println("yes!" + handshakeData.getAddress());
return true;
}
});
final SocketIOServer server = new SocketIOServer(config);
server.addEventListener("message", String.class, new DataListener<String>() {
public void onData(SocketIOClient socketIOClient, String s, AckRequest ackRequest) throws Exception {
System.out.println("hey");
}
});
server.start();
}
}
我接受所有连接,我已经用 socket.io javascript 客户端测试了这样的连接:
var ws = io.connect('localhost:8080');
ws.on('connect', function() {
ws.emit('message', "I am a message!");
});
现在,我得到打印 "hey",但是如果我发送这样的数据对象会怎样:
ws.emit('message', {data: "I am a message!"});
如何解码此消息?有没有办法调试发送到服务器的对象类型?
您正在从客户端向服务器发送 Object
。在服务器上,您需要创建一个对象,它有一个名为 data
的字符串字段。
见下面demo class,基本上现在你可以使用
这样的代码在服务器上接收对象
server.addEventListener("ackevent1", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(final SocketIOClient client, ChatObject data, final AckRequest ackRequest) {
...
我正在使用以下项目构建 socket.io server: https://github.com/mrniko/netty-socketio
我的服务器:
public class ServerTest {
public static void main(String... args) {
Configuration config = new Configuration();
config.setPort(8080);
config.setAuthorizationListener(new AuthorizationListener() {
public boolean isAuthorized(HandshakeData handshakeData) {
System.out.println("yes!" + handshakeData.getAddress());
return true;
}
});
final SocketIOServer server = new SocketIOServer(config);
server.addEventListener("message", String.class, new DataListener<String>() {
public void onData(SocketIOClient socketIOClient, String s, AckRequest ackRequest) throws Exception {
System.out.println("hey");
}
});
server.start();
}
}
我接受所有连接,我已经用 socket.io javascript 客户端测试了这样的连接:
var ws = io.connect('localhost:8080');
ws.on('connect', function() {
ws.emit('message', "I am a message!");
});
现在,我得到打印 "hey",但是如果我发送这样的数据对象会怎样:
ws.emit('message', {data: "I am a message!"});
如何解码此消息?有没有办法调试发送到服务器的对象类型?
您正在从客户端向服务器发送 Object
。在服务器上,您需要创建一个对象,它有一个名为 data
的字符串字段。
见下面demo class,基本上现在你可以使用
这样的代码在服务器上接收对象
server.addEventListener("ackevent1", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(final SocketIOClient client, ChatObject data, final AckRequest ackRequest) {
...