您必须将 socketio 主机添加到 PhoneGap.plist 中的“ExternalHosts”键中。
See Faq http://wiki.phonegap.com/w/page/41631150/PhoneGap%20for%20iOS%20FAQ:
问:无法加载指向外部主机的链接和从外部主机导入的文件?
A. 最新代码新增了白名单功能。如果您引用外部主机,
您必须在 PhoneGap.plist 中的“ExternalHosts”键下添加主机。通配符没问题。
因此,如果您要连接到“http://phonegap.com http://phonegap.com”,您必须将“phonegap.com”添加到列表中(或使用通配符“*.phonegap.com”
这也将匹配子域)。 (注意:如果你打开plist
如果您在 Xcode 中创建文件,则无需摆弄 XML 语法。)
对于 android,您必须编辑 cordova.xml 并添加对 socketio 主机的访问权限:
<access origin="HOST*"/>
index.html(以socketio为例):
...
<script src="HOST/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('HOST');
socket.on('news', function (data) {
socket.emit('my other event', { my: 'data' });
});
</script>
...
app.js(服务器端 javascript / 基本 socketio 示例):
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
您必须将 HOST 替换为您的 socket.io 服务器的主机名!