从phonegap连接到socket.io服务器

时间:2014-07-21 21:20:03

标签: node.js sockets cordova websocket socket.io

我需要一种方法从通用(或至少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> 

2 个答案:

答案 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" />