You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stomp over WebSocket浏览器到实体安卓手机数据传输问题咨询

问题解答

你当前遇到的闪退核心原因有两个:一是10.0.2.2是安卓AVD虚拟机专属的宿主机映射地址,实体手机无法识别该地址,连接请求直接失败;二是你代码未做连接异常捕获,且Const类中address字段被声明为private外部无法访问,触发运行时异常导致闪退。

三个问题的明确答复

  • 问题1:不需要改为手机IP,要替换为运行WebSocket服务端的电脑的局域网IP地址。你可以在电脑的网络设置里查看当前WiFi对应的IPv4地址,通常为192.168.x.x格式,直接替换掉address里的10.0.2.2即可。
  • 问题2:端口号无需调整,保持8080即可,前提是你电脑上的Stomp服务端确实是监听8080端口。额外注意要打开电脑系统防火墙的8080端口入站权限,否则连接会被防火墙拦截。
  • 问题3:当前你的电脑是WiFi内网、手机是4G公网的环境无法通信。如果服务端部署在本地电脑,必须让手机和电脑连接同一个WiFi,处于同一局域网下才能正常互通;如果需要手机用4G也能访问,需要把服务端部署到有公网IP的云服务器上,把address改成云服务器的公网IP即可。

代码修复建议

你提供的Const类中address字段被声明为private,外部的BroadcastActivity无法访问该字段,这也是崩溃的直接原因之一,要把修饰符改成public:

// 修改前
private static final String address = "ws://10.0.2.2:8080/im/websocket";
// 修改后,替换为你电脑的局域网IP
public static final String address = "ws://192.168.xxx.xxx:8080/im/websocket";

另外建议给Stomp连接添加异常回调,捕获连接失败的情况避免直接闪退,也方便后续排查问题。

内容的提问来源于stack exchange,提问作者Joe Tan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:15:05