gpt4 book ai didi

java - 适用于 android、java 的 websocket 服务器

转载 作者:行者123 更新时间:2023-12-01 05:17:23 26 4
gpt4 key购买 nike

我正在为 Android 构建一个简单的 websocket 服务器。 (假设 3.2 - 我尝试了一些早期的 Android 版本,结果相同)。在 Android 上尝试代码之前,我在 Windows、Linux 上的 Java SE 下测试了它。它在 Chrome 和 Firefox 上运行正常。但在 Android 上它不起作用。请参阅代码中的注释。

简而言之:

  1. 我成功通过了握手,浏览器确认连接正常。
  2. 我很高兴通过 Websocket 接收来自浏览器的所有消息
  3. 我无法发送任何内容:它只是无法到达 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){}
}
}

谢谢

最佳答案

你在哪里运行这段代码?在 Activity 或 Service 中。

请注意,如果您需要创建一个自定义的 Web 服务器并需要在 Android 上运行它,您应该将其实现为在其自己的线程上运行的服务。

如果您在 Activity 上运行它,具体取决于 Android 版本,则主线程不应(或不能,具体取决于 Android 版本)在主线程上执行 I/O 操作。

希望对您有所帮助。

关于java - 适用于 android、java 的 websocket 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10965786/

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