从phonegap连接到一个socket.io服务器

我需要一种方法来连接到一个通用的(或至lessiOS和Android)phonegap应用程序的socket.io服务器。

在浏览器中,我将从节点脚本提供html页面,这将允许我访问socket.io客户端的js文件,但是我不能用phonegap来完成,因为html必须打包在手机上运行。

在做了一些研究后,似乎我需要远程访问socket.io客户端js,但是每次尝试都会导致错误。 这里是服务器代码(基于http://socket.io/get-started/chat/提供的示例代码)

var app = require('express')(); var http = require('http').createServer(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.send('Loaded'); }); io.on('connection', function(socket){ console.log("A person connected!"); }) http.listen(8080, function(){ console.log("listening on port 8080..."); }); 

这里是没有添加phonegap脚本和东西的客户端代码:

 <script type="text/javascript" src="socket-io/socket-io.js"></script> <script type="text/javascript"> var socket = io.connect(); </script> 

在SO上试试这个答案: https : //stackoverflow.com/a/10886574/2516585

基本上你需要在phonegap中编辑config.xml,然后添加<access origin="HOST*" /> ,其中HOST是你服务器的主机名,然后用socketio连接到这个主机名。

问候!

cordova的白名单插件为你做的工作。 它可以帮助您控制允许应用程序通过更改您的config.xml文件来请求系统打开哪些URL。 你将不得不在config.xml文件中添加<access origin="YOUR_HOST" />