我想在ESP32上使用websocket与java websocket服务器通信。我正在使用ESP32文档中的代码示例: https://github.com/espressif/esp-idf/tree/a45e99853/examples/protocols/websocket
我调整的是ssid名称和密码以及websocket端点地址。我的Java代码如下:
package com.webapp.ws;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.OnError;
import javax.websocket.Onmessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/hello")
public class HelloEndpoint {
private Session session;
@OnOpen
public void onCreateSession(Session session){
System.out.println("Connected " + session.toString());
this.session = session;
}
@Onmessage
public void OnTextMessage(String message){
System.out.println("message=" + message);
if(this.session != null && this.session.isOpen()){
try {
System.out.println("received: " + message);
this.session.getBasicRemote().sendText("From server: " + message);
} catch (IOException ex) {
Logger.getLogger(HelloEndpoint.class.getName()).log(Level.SEVERE,null,ex);
}
}
}
@OnError
public void onError(Session session,Throwable thr) {
Logger.getLogger(HelloEndpoint.class.getName()).log(Level.SEVERE,thr.toString());
}
}
不幸的是,我无法获得esp和java(托管在tomee上)之间的通信。来自ESP的日志如下:
I (8088) tcpip_adapter: sta ip: 192.168.1.100,mask: 255.255.255.0,gw: 192.168.1.1
I (8588) example_connect: Connected to Lubinska123
I (8588) example_connect: IPv4 address: 192.168.1.100
I (8588) example_connect: IPv6 address: fe80:0000:0000:0000:3e71:bfff:fef9:6db0
I (8598) WEBSOCKET: Connectiong to ws://192.168.1.104:8080/MvnWebAppSock/hello...
I (8678) WEBSOCKET: WEBSOCKET_EVENT_CONNECTED
I (9608) WEBSOCKET: Sending hello 0000
I (10608) WEBSOCKET: Sending hello 0001
I (11608) WEBSOCKET: Sending hello 0002
I (12608) WEBSOCKET: Sending hello 0003
I (13608) WEBSOCKET: Sending hello 0004
I (14608) WEBSOCKET: Sending hello 0005
I (15608) WEBSOCKET: Sending hello 0006
I (16618) WEBSOCKET: Sending hello 0007
I (17618) WEBSOCKET: Sending hello 0008
I (18618) WEBSOCKET: Sending hello 0009
I (18898) WEBSOCKET: WEBSOCKET_EVENT_DATA
I (18898) WEBSOCKET: Received opcode=10
W (18898) WEBSOCKET: Received=
I (19908) WEBSOCKET: Websocket Stopped
在tomcat日志上,我只能看到已创建新连接,仅此而已。这意味着不会随时调用Onmessage注释。
有人可以帮助我解决这个问题吗?