简体   繁体   中英

Socket.io-client simple client/server test wont connect - Node.js

I am trying to get some simple communication to work in Node.js using socket.io and socket.io-client.

I have two scripts, server.js and client.js.

The server.js script can bind to a webfacing port and act like a normal server/socket.io host, which all works when used with the browser client,

but the client.js (running in another node script) doesn't work, it just waits not outputting anything. I expect my socket.io-client in client.js to connect to the socket.io instance in server.js and for both to display a message in their console to say they're connected.

server.js code:

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 code:

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");
});

installed with 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

Ideally I don't want to be using express or an http server, just a socket communication between two Node.js scripts, one on a server machine, one on a client machine.

Thanks for any help :)

For some reason, it wouldn't connect when i used:

npm install socket.io-client

and

require('socket.io-client');

But it does connect if I use the client that comes with the main package

npm install socket.io

and

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

Took a while to figure out, but hopefully now it will take someone else less time; if they face the same problem.

你有没有尝试过:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM