Socket.IO Cordova 无法在设备上运行
Socket.IO with Cordova not working on Device
我目前正在使用 Ionic Framework 开发一个 Apache Cordova 应用程序,它应该通过 WebSocket 进行通信,我为此使用了 Socket.Io 库。现在,当我 运行 它在我的桌面浏览器上时一切正常,但是当我为 Android 构建并在我的智能手机上测试它时它不起作用。
我的服务器是这样的:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8200, '192.168.0.127', function() {
console.log('Server listening...');
});
io.listen(server);
io.on('connection', function(socket) {
socket.emit('init', data);
});
而且由于 Ionic 是 AngularJS 的朋友,我的客户端控制器看起来像这样:
.controller('AppCtrl', function($rootScope, $scope, ServerUrl) {
var socket = io.connect(ServerUrl.serverUrl()); // ServerUrl: 'http://192.168.0.127:8200'
socket.on('init', function(data) {
// something
});
我将 Socket.IO 客户端脚本包含在我的 index.html 头中,如下所示:
<script src="lib/socket.io/socket.io.min.js"></script>
当我远程调试应用程序时,它使用不同的 t 参数重复抛出此消息:
Failed to load resource: net::ERR_ADDRESS_UNREACHABLE http://192.168.0.127:8200/socket.io/?EIO=3&transport=polling&t=1431079993172-0
我已经彻底搜索了这里的每个相关问题,但它们并没有解决我的问题。我真的需要这个东西来工作,如果有任何帮助,我将不胜感激。
提前致谢。
这是一个 IP 地址问题。 192.168.0.127 是我桌面的 WiFi IP,但不知何故每次我将智能手机连接到桌面以部署应用程序时,都会构建 LAN 网络并且 WiFi 适配器已断开连接,因此 192.168.0.127:8200 无法访问。在 Windows 控制面板中停用 LAN 网络,一切正常。
我目前正在使用 Ionic Framework 开发一个 Apache Cordova 应用程序,它应该通过 WebSocket 进行通信,我为此使用了 Socket.Io 库。现在,当我 运行 它在我的桌面浏览器上时一切正常,但是当我为 Android 构建并在我的智能手机上测试它时它不起作用。
我的服务器是这样的:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8200, '192.168.0.127', function() {
console.log('Server listening...');
});
io.listen(server);
io.on('connection', function(socket) {
socket.emit('init', data);
});
而且由于 Ionic 是 AngularJS 的朋友,我的客户端控制器看起来像这样:
.controller('AppCtrl', function($rootScope, $scope, ServerUrl) {
var socket = io.connect(ServerUrl.serverUrl()); // ServerUrl: 'http://192.168.0.127:8200'
socket.on('init', function(data) {
// something
});
我将 Socket.IO 客户端脚本包含在我的 index.html 头中,如下所示:
<script src="lib/socket.io/socket.io.min.js"></script>
当我远程调试应用程序时,它使用不同的 t 参数重复抛出此消息:
Failed to load resource: net::ERR_ADDRESS_UNREACHABLE http://192.168.0.127:8200/socket.io/?EIO=3&transport=polling&t=1431079993172-0
我已经彻底搜索了这里的每个相关问题,但它们并没有解决我的问题。我真的需要这个东西来工作,如果有任何帮助,我将不胜感激。
提前致谢。
这是一个 IP 地址问题。 192.168.0.127 是我桌面的 WiFi IP,但不知何故每次我将智能手机连接到桌面以部署应用程序时,都会构建 LAN 网络并且 WiFi 适配器已断开连接,因此 192.168.0.127:8200 无法访问。在 Windows 控制面板中停用 LAN 网络,一切正常。