Socket.io-client简单客户端/服务器测试不会连接 - Node.js

时间:2014-08-24 16:55:00

标签: javascript node.js sockets socket.io

我正在尝试使用socket.io和socket.io-client在Node.js中进行一些简单的通信。

我有两个脚本,server.js和client.js。

server.js脚本可以绑定到webfacing端口,并且像普通的server / socket.io主机一样,当与浏览器客户端一起使用时,它们都可以正常工作,

但是client.js(在另一个节点脚本中运行)不起作用,只是等待不输出任何东西。我希望client.js中的socket.io-client能够连接到server.js中的socket.io实例,并且两者都要在控制台中显示一条消息,说明它们已连接。

server.js代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
    console.log("\nNew server request: "+req.url+"\n");

    // sends a html file with a script that connects
    // to socket.io running in server.js
    res.sendFile(__dirname+'/webroot/index.html');
});

// listens for connections
io.on('connect', function(socket){
  console.log('a client connected');
});

// start listening on server
http.listen(9000, function(){
  console.log('listening: 9000');
});

client.js代码:

var io = require('socket.io-client');

// connect to server.js socket
var socket = io('http://hostsite.com', {
    port: 9000
});

socket.on('connect', function(){
    console.log("connected\n");
});

用npm

安装
npm install socket.io // version: 1.0.6
npm install socket.io-client // version: 1.0.6
npm install express // version: 4.8.5

理想情况下,我不想使用express或http服务器,只是两个Node.js脚本之间的套接字通信,一个在服务器机器上,一个在客户端机器上。

感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

出于某种原因,我使用它时不会连接:

npm install socket.io-client

and

require('socket.io-client');

但如果我使用主程序包附带的客户端

,它会连接
npm install socket.io

and

require('socket.io/node_modules/socket.io-client');

花了一段时间才弄清楚,但希望现在它会花费别人更少的时间;如果他们面临同样的问题。

答案 1 :(得分:0)

你试过了吗?

var socket = io.connect('http://hostsite.com:9000');