我需要一种连接到套接字的方法。从一个通用的(或至少ios和android) phonegap应用程序的IO服务器。
在浏览器中,我将从节点脚本中提供html页面,这将允许我访问套接字。但是我不能在phonegap中这样做,因为html必须打包才能在手机上运行。在做了一些研究之后,我似乎需要远程访问套接字。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" />
。