2013-12-19 59 views
0

我有一个需求,在我的节点服务器从普通node.js服务器调用后端rest服务到套接字服务器之前,需要发出socket.io消息。我试图想象我想做的事:从普通node.js服务器发送socket.io消息

Client(sends data) --> 
     |->Node.js server (sends data to socket.io server --> Backend rest service 
        |->-- socket.io server 

为此,我已经在我的普通节点试过这种server.js

var io = require('./socket.io.js'); 

http.createServer(function(request,response) { 
    var restUrl; //Data I am getting from request 

    //Socket.io server information 
    var options = { 
     host: 'localhost', 
     port: '3000' 
    }; 

    var socket = io.connect(options); 
    socket.on('connect', function() { 
     socket.send(restUrl); 
    }); 
} 

但它不工作,给我这个错误:

TypeError: Cannot read property 'port' of undefined 
at Socket.isXDomain (E:\Pradeep\BaaS\socket.io.js:1877:31) 
at Socket.handshake (E:\Pradeep\BaaS\socket.io.js:1627:14) 
at Socket.connect (E:\Pradeep\BaaS\socket.io.js:1699:10) 

任何人都可以指导我我做错了什么?基本上我试图监视我的节点服务器的实时活动。任何指导或帮助表示赞赏。

回答

1

你需要的是你的node.js服务器socket.io客户端。获取模块npm install socket.io-client,然后用下面的例子 -

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

var socket = io.connect('localhost', { 
    port: 3000 
}); 

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

http.createServer(function (req, res) { 
    if(connected == 1) 
    socket.emit('info', {my:'data'}); 
}).listen(1337); 
+0

非常感谢你:) –

0

恐怕这是为node.js设置socket.io的完全错误的方法。 正确的方法是如下:

var app = require('express').createServer() 
    , io = require('socket.io').listen(app); 

app.listen(80); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

来源:http://socket.io/#how-to-use

+0

嗨,我不设立服务器,但试图发出一个消息从node.js的服务器socket.io服务器。 –

+0

上面的代码确实发出消息。阅读这里的文档:[链接] http://socket.io/#how-to-use –

+0

是的,它确实发射,但它是一个套接字服务器,我有该代码。我想从纯Node.js服务器调用socket.io。 –

相关问题