android - 为什么我的 Node.js 服务器只连接我的桌面应用程序而不连接其他东西(模拟器、apk)?
问题描述
我使用带有libgdx的Android Studio创建了一个新项目,该项目尝试连接到具有如下代码的 Node.js 服务器:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var serv = server.listen(8080,function () {
var port = serv.address().port;
//a code I've found online to show on what adress im listening
//"Example app listening at http://192.168.178.15:8080"
require('dns').lookup(require('os').hostname(), function (err, add, fam) {
console.log('Example app listening at http://%s:%s', add, port);
})
});
io.on('connection', function(socket){
console.log("Connected!");
.
.
我的应用代码
public void connectSocket(){
System.out.println("Connection to the socket has started");
try {
socket = IO.socket("http://192.168.178.15:8080");
socket.connect();
System.out.println("connected"); // says it's connected, but on app or emulator it's not
} catch(Exception e){
System.out.println(e);
System.out.println("not connected");
}
问题 当我运行我的 .jar 或 DesktopLauncher 类时,一切正常,我连接。当我使用手机或模拟器时,我没有收到错误消息,它会尝试连接,但没有任何关于连接的记录。好像应用程序找不到服务器一样。
我试过的
我已经尝试了所有可以在网上找到的东西:
- android:usesCleartextTraffic="true"
- 关闭我的防火墙,允许节点以及那里需要的所有东西
更改在我的应用程序上连接的不同 ip 地址,例如“localhost”、公共 ip、我在 ipconfig 和互联网上找到的所有 IP 地址、“oooo”(所有这些都在我的计算机 .jar 或通过 android 的应用程序上工作工作室)
- portfoward 8080 但不确定我是否做对了
我正在使用路由器,如果这能提供任何线索, 我正在尝试这个几天,但我没有东西可以尝试。
解决方案
推荐阅读
- java - IntelliJ 索引太慢
- maven - 我想将 JAR 上传到 GitLab 包注册表
- github - 使用 vercel 导入 github 存储库时出错
- dns - 使用拆分 dns 进行 DKIM 电子邮件签名的 DNS 记录
- java - 作业计划未运行
- swiftui - swiftUI:可能有背景颜色忽略安全区和内容遵守安全区?
- actionmailer - 为 ActionMailer 清除 sidekiq 作业
- google-chrome - 自动播放有声视频时,视频广告如何解决 Chrome 自动播放政策?
- mysql - 使用单个触发器根据条件插入多个表
- javascript - 如何选择通过JS动态创建的“输入类型”值