我遇到了一些问题,我尝试使用 websockets 编写一些用于数据流的 web 应用程序,它尚未准备好,但我正在努力。 我尝试向我的服务器发送一个字符串,服务器应该向我发送带有 UUID 的消息,我首先刚刚使用
发送了 UUIDsession.getBasicRemote().sendText(uuid.tostring())
效果很好,但现在我尝试发送 map ,以便我可以使用
一起发送 UUID 和字符串session.getBasicRemote().sendObject(map);
但是现在我的 JS 客户端没有收到我尝试发送的数据,我的服务器抛出异常
javax.websocket.EncodeException: No suitable encoder found
我现在不知道如何解决这个问题。
JS代码
var websocket;
$(document).ready(function(){
websocket = new WebSocket("ws://localhost:8080/TimeStreamingTestartID-1.0-SNAPSHOT/websockets/simplestockmarket")
websocket.onopen = function(){
alert("SUCESS: REGISTERED!!");
}
$("#tblcontainer").html('<table id="tableID" class="table table-bordered" ><thead><tr><th>Identification</th><th>Text</th></tr></thead></table>')
$("#start").click(function(){
websocket.send("Test")
websocket.onmessage = function(erg){
$("#tableID").append('<tr><td>'+"1"+'</td><td>'+erg+'</td></tr>')
console.log(erg);
}
});
});
我的java onMessage方法
@OnMessage
public void message(Session session,String message) throws IOException {
UUID uuid = UUID.randomUUID();
Map map = new HashMap<>();
map.put(uuid,message);
try {
session.getBasicRemote().sendObject(map);
} catch (EncodeException e) {
e.printStackTrace();
}
}
最佳答案
您的服务器端点是什么样的?你上面有这个注释吗?
@ServerEndpoint(value="/whatever", encoders = {MessageEncoder.class}, decoders = {MessageDecoder.class})
public class MessageService {
@OnMessage
public void message()...
}
关于javascript - 找不到合适的编码器(java websocket),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850889/