我正在为Android构建一个简单的websocket服务器。 (让我们说,3.2 - 我尝试了一些早期的Android版本,结果相同)。在Android上尝试代码之前,我在Windows,Linux上的Java SE下进行了测试。它可以与Chrome和Firefox一起工作。 但是在Android上它不起作用。请参阅代码中的评论。安卓系统的websocket服务器,java
简而言之:
我顺利通过握手和浏览器确认连接正常。
我很高兴地通过Websocket接收来自浏览器的所有消息我不能发送任何东西:它只是没有得到JavaScript回调。 经过一些重试(有时立即)浏览器关闭websocket。
下面是代码:
//BufferedOutput myout=new BufferedOutput(mysocket.getOutputStream()));
//myout was successfully used for handshaking before
String msg=”I want to send this”;
try {
myout.write(129);//129=0x81); text frame 0x81=129
int payloadlen=msg.length();
myout.write(payloadlen);
byte[] bts=msg.getBytes(Charset.forName("UTF-8"));
myout.write(bts,0,payloadlen);
myout.flush();//after this command client Browser closes websocket
//firefox also gives error
}
catch(IOException ee)
{
System.out.println("Error sending websocket message"+ee);
try{myclose();}catch(IOException eio){}
}
}
谢谢