Que*_*eUe 5 android node.js socket.io
我的应用程序使用 socket.io,无法连接到 node.js 服务器。
服务器节点.js
var app = require('http').createServer()
var io = require('socket.io')(app);
app.listen(1000);
io.on('connection', function (client) {
client.name = client.remoteAddress + ':' + client.remotePort;
console.log(client.name + ' connected!');
client.on('sensorChanged', function (data) {
console.log("HERE");
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
安卓应用:
SocketIO socket = new SocketIO();
try {
socket.connect("http://localhost:1000/", this);
txtView.setText("connected");
} catch (MalformedURLException e) {
e.printStackTrace();
}
socket.emit("sensorChanged", "argument1");
Run Code Online (Sandbox Code Playgroud)
当我连接到服务器时,服务器不会说“socket.name connected”,也不会发出事件“sensorChanged”。问题出在哪儿?
当我在同一个 WiFi 上将带有 Socket.IO 的 Android 应用程序与我的服务器连接时,我也遇到了连接问题(尽管当我尝试连接到浏览器中的相同 URL 时连接工作正常)。
我在这里找到了解决方案:https : //stackoverflow.com/a/50834600/9560885
简而言之,尝试将此行添加到您的 AndroidManifest.xml 中:
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
Igo*_*daš -1
您正在从 android 本地计算机上定位 Node 服务器。由于节点不在 Android 上运行(据我所知),我猜您想将服务器定位到您的电脑上。您应该使用本地网络中电脑的网络地址,而不是 localhost(在此 Android 代码中指手机/平板电脑本身)。
| 归档时间: |
|
| 查看次数: |
5865 次 |
| 最近记录: |