Javascript WebSocket在发送Base64编码字符串时关闭
我正试图通过websocket发送一个base64编码的字符串(从图像转换而来),这在javascript客户端上运行良好 但是如果我使用java客户机(@clientEndPoint),onMessage函数会被触发一次,websocket连接会立即关闭。没有错误 我再次尝试从服务器发送普通字符串,并且java客户端功能正常。但不能使用base64编码字符串 我正在使用Tomcat 7.0.69,下面是代码片段: 服务器端点:Javascript WebSocket在发送Base64编码字符串时关闭,javascript,java,tomcat,websocket,jsr356,Javascript,Java,Tomcat,Websocket,Jsr356,我正试图通过websocket发送一个base64编码的字符串(从图像转换而来),这在javascript客户端上运行良好 但是如果我使用java客户机(@clientEndPoint),onMessage函数会被触发一次,websocket连接会立即关闭。没有错误 我再次尝试从服务器发送普通字符串,并且java客户端功能正常。但不能使用base64编码字符串 我正在使用Tomcat 7.0.69,下面是代码片段: 服务器端点: if (imageToBeSend != null) { e
if (imageToBeSend != null) {
encodedImage = new sun.misc.BASE64Encoder().encode(imageToBeSend);
session.getBasicRemote().sendText(encodedImage);
}
Java客户端:
@ClientEndpoint
public class SomeClass {
CountDownLatch latch = new CountDownLatch(1);
private Session session;
String msg;
@OnOpen
public void open(Session session) {
this.session = session;
//some stuff
}
@OnClose
public void close(Session session) {
System.out.println("Closing the connection");
}
@OnError
public void onError(Throwable error) {
System.out.println("!!!ERROR!!!!!" + error);
error.printStackTrace();
}
@OnMessage
public void handleMessage(String message, Session session) throws IOException {
System.out.println("got the json string "+message.length());
// more stuff
}
在这里,handle消息被调用一次,并打印相应的sysout,然后立即调用onClose。永远不会调用onError