gpt4 book ai didi

java - Angular 8 socket.io-client 2.2.0 和 Java netty-socket.io 消息未收到?

转载 作者:行者123 更新时间:2023-12-02 09:33:04 26 4
gpt4 key购买 nike

我正在使用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();

我的MessageEventObjectString message属性,构造函数getterssetters,看起来与客户端相同。

这是我的 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
});
}
}

我是不是做错了什么?

最佳答案

经过大量的调试和伤脑筋之后,我很想回答我自己的问题,我懒惰地在 tomcat 或 jetty 中使用 Engine IO,并且只想使用不需要任何 servlet 的很棒的 netty 包,我尝试修复它并找出答案。

起初我以为这是客户端的协议(protocol)版本,所以我使用了与演示在其 github page here 上显示的完全相同的客户端。但这不起作用,所以问题出在服务器端。

看来,除了其他构造函数之外,您的对象 (MessageEventObject) 还必须有一个默认的空构造函数,可能是因为 netty 尝试构建一个空对象并且失败,这会导致您出现异常没看到。

关于java - Angular 8 socket.io-client 2.2.0 和 Java netty-socket.io 消息未收到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57783871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com