簡體   English   中英

Socket.IO Angular服務器到服務器的連接

[英]Socket.IO Angular Server to Server Connection

是否可以在以gulp模式運行的客戶端服務器上與以節點模式運行的其他服務器上進行簡單的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")
       });
     });

在我的角度

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的客戶端實現(或與實現socket-io客戶端https://github.com/btford/angular-socket-io的 Angular組件一起使用)。

在節點服務器中,應使用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無法提供偵聽連接的方法。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM