Node.js 使用Socket.io连接到特定的服务器Ip

Node.js 使用Socket.io连接到特定的服务器Ip,node.js,sockets,cordova,Node.js,Sockets,Cordova,我必须为移动设备构建一个跨平台的web应用程序,所以我正在用html、css和js开发它(然后它将通过phonegap或cordova) 我的问题是如何使用socket.io,我的问题是: 1) 我可以连接到客户端的特定ip吗 取而代之的是: <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost'); soc

我必须为移动设备构建一个跨平台的web应用程序,所以我正在用html、css和js开发它(然后它将通过phonegap或cordova)

我的问题是如何使用socket.io,我的问题是:

1) 我可以连接到客户端的特定ip吗

取而代之的是:

 <script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>
这样,应用程序的用户将连接到我的服务器Ip,我在其中托管聊天服务


我想我没有考虑socket.io的正确逻辑。

部署应用程序时,您将不会连接到本地主机,设备将连接到服务器主机名或IP地址

服务器上的以下代码将在与指定端口上的服务器关联的IP地址上运行socket.io,前提是该IP地址上的服务器可以访问

var io = require('socket.io');
var server = http.createServer();
server.listen(port, ipAddress);
var socket = io.listen(server);
以下代码在客户端应该可以正常工作

var socket = new io.Socket();
socket.connect('http://' + ipAddress + ':' + port);

确保您能够通过网络从客户端设备连接到IP地址,以使其正常工作。

非常感谢您的回答。我现在的问题是客户端无法加载socket.io库。我已在1.2.3.4:1234启动服务器,当我连接到此地址(我的index.html位于Xammp htdocs文件夹中)时,控制台显示此错误“GET”。为什么?您使用的是什么Express版本?API已从Express 2.x更改为3.x,因此答案在从2.x迁移到3.x wiki的Socket.IO兼容性部分中:Socket.IO的.listen()方法以http.Server实例为参数。从3.x开始,express()的返回值不是http.Server实例。要使Socket.IO使用Express3.x,请确保手动创建http.Server实例并将其传递给Socket.IO的.listen()方法。
var io = require('socket.io');
var server = http.createServer();
server.listen(port, ipAddress);
var socket = io.listen(server);
var socket = new io.Socket();
socket.connect('http://' + ipAddress + ':' + port);