从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" />
。
- 如何识别连接到套接字的两个用户,并将其join到一个房间? Socket.io
- 将请求res对象传递给socket.io?
- 将更新通知发送给使用socket.io的特定用户
- 如何在wamp上运行套接字以及为localhost使用哪个端口
- 套接字在服务器端代码节点内发射
- 重新连接不同的IP后,Socket.remoteAddress不会更新
- net.Socket.writable,net.Socket.readable属性不是官方node.js API的一部分
- 如何使用Node.js / Express + Passport + Websockets进行身份validation?
- 在HTTP模式下,node.js是否比Java有更大的性能优势?