Socket.IO Angular Server到服务器连接

是否有可能做一个简单的socket.io连接上运行一个客户端服务器吞服到节点中运行的其他服务器?

.--------. .----------. .----------. |SERVER A| | | | SERVER B | | (Gulp) | | CLIENT | | (Nodejs) | | PORT | <--> | SIDE | <--> | PORT | | 2772 | | | | 8000 | '--------' '----------' '----------' 

我试图使用socket.io-client但我有点困惑..但我使用它是这样的:

Server.js

  var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 8000; var ioClient = require('socket.io-client'); var client = ioClient.connect( "http://localhost:" + 2772 ); io.on('connection', function(socket){ console.log('a user connected') socket.on('disconnect', function(){ console.log("a user disconnected") }); }); client.on('connection', function(socket){ console.log('a user connected') client.on('disconnect', function(){ console.log("a user disconnected") }); }); 

在我的Angular

App.js

  var myApp = angular.module('ngclient', ['ngRoute','ui.bootstrap','ui.select','ngSanitize', 'btford.socket-io']); 

调节器

  myApp.controller('dailydoseController', ['$scope', 'chatSocket', function($scope, chatSocket){ }]); 

 myApp.factory('chatSocket', ['socketFactory', function(socketFactory){ return socketFactory; }]); 

它只是相关的…整个代码太长..请帮助

我不确定我是否完全明白你的问题。

在客户端(Angular在你的情况),你可以使用socket.io的客户端实现(或者使用Angular组件实现socket-io客户端https://github.com/btford/angular-socket-io )。

在你的节点服务器中,你应该使用如下所示的socket-io的服务器组件。

 var app = require('http').createServer(handler) var io = require('socket.io')(app); io.on('connection', function (socket) { // handle connection }) 

考虑到即使是困难的websocket是双向的,我们仍然有一个“客户端”和“服务器”。 在你的情况下,“客户端”是在浏览器上运行Angular,“服务器”是节点。 节点服务器无法直接与客户端打开WebSocket,因为浏览器上的WebSockets API不提供监听连接的方法。

希望能帮助到你!