我需要一种方法从通用(或至少ios和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>
答案 0 :(得分:2)
在SO上尝试这个答案: https://stackoverflow.com/a/10886574/2516585
基本上你需要在phonegap中编辑config.xml,并添加<access origin="HOST*" />
,其中HOST是你服务器的主机名,然后用socketio连接到那个主机名。
问候!
答案 1 :(得分:1)
Cordova's white-list plugin为你完成这份工作。它可以帮助您控制允许应用程序通过更改config.xml文件来要求系统打开的URL。您必须在config.xml文件中添加<access origin="YOUR_HOST" />
。