【发布时间】:2019-09-04 07:55:32
【问题描述】:
我正在使用netty-socket.io,并像演示一样实现了服务器。
我在服务器和客户端都收到onConnect 事件,但是当我发送消息{message: message} 时,我在服务器事件上没有收到任何信息,尽管我在网络选项卡中看到消息正在发送。
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(9092);
final SocketIOServer server = new SocketIOServer(config);
server.addConnectListener(socketIOClient -> System.out.println("Connection test"));
server.addEventListener("messageevent", MessageEventObject.class, new DataListener<MessageEventObject>() {
@Override
public void onData(SocketIOClient socketIOClient, MessageEventObject messageEventObject, AckRequest ackRequest) throws Exception {
System.out.println("message received!");
}
});
server.start();
我的MessageEventObject 有String message 属性,constructor getters 和setters,看起来与客户端相同。
这是我的 websocket 服务客户端:
export class WebsocketService {
private socket;
private subject = new Subject < any > ();
constructor() {
console.log('test!');
}
public connect(host: string, port: number) {
this.socket = io(`http://${host}:${port}`, {
'reconnection': false
});
this.socket.on('connect', this.onConnected);
this.socket.on('connect_error', this.onConnectionFailure);
}
public getConnectionStateUpdate(): Observable < any > {
return this.subject.asObservable();
}
public sendMessage(message: string) {
console.log('test');
this.socket.emit('messageevent', {
message: message
});
}
private onConnected = () => {
this.subject.next({
connected: true
});
}
private onConnectionFailure = () => {
this.subject.next({
connected: false
});
}
}
是不是我做错了什么?
【问题讨论】:
-
您确定您找对地方了吗?
System.out指向哪里? -
@Kayaman 在 Java 控制台中是的。我在哪里收到消息
Connection test
标签: java angular socket.io netty