我正在尝试使用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脚本之间的套接字通信,一个在服务器机器上,一个在客户端机器上。
感谢您的帮助:)
答案 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');