2016-04-29 83 views
-1

我想知道是否可以在兩個單獨的瀏覽器上運行相同的應用程序,並從一個瀏覽器獲取更新?Angularjs應用程序的多個實例

讓我們說我有應用程序在Chrome上運行:http://127.0.0.1:8000/# 和Firefox或者Chrome的隱身標籤相同的開放等,當任何打開的會話更新的東西我想獲得其他會話更新/警報。 任何方向將不勝感激。

感謝

+1

你應該看看服務器端,而不是客戶端。 –

+0

所以沒有服務器端它不可能? – karma

+1

更具體地說,如果您希望更新即時發生(即沒有頁面重新加載),您可能需要在服務器上實現WebSockets,或者沿着這些線路執行某些操作。請參閱http://socket.io/(當它恢復時 - 現在似乎對我而言)。 –

回答

0

我已經建立2 Web服務器用於此目的:

一個運行網絡插座。 其他應用程序。

的WebSocket例子的NodeJS:

#!/usr/bin/env node 

var WebSocketServer = require("ws").Server; 
var http = require("http"); 
var express = require("express"); 
var port = process.env.PORT || 5000; 

var app = express(); 
    app.use(express.static(__dirname+ "/../")); 
    app.get('/test', function(req, res, next) { 
     console.log('receiving get request'); 
    }); 
    app.post('/test', function(req, res, next) { 
     console.log('receiving post request'); 
    }); 
    app.listen(80); 

    //console.log("app listening on %d ", 80); 

var server = http.createServer(app); 
    server.listen(port); 

console.log("http server listening on %d", port); 


var userId; 
var wss = new WebSocketServer({server: server}); 
    wss.on("connection", function (ws) { 

    console.info("websocket connection open"); 

    var timestamp = new Date().getTime(); 
    userId = timestamp; 

    ws.send(JSON.stringify({msgType:"onOpenConnection", msg:{connectionId:timestamp}})); 


    ws.on("message", function (data, flags) { 
     console.log("websocket received a message"); 
     var clientMsg = data; 
     wss.clients.forEach(function each(client) { 
      client.send(clientMsg); 
     });   
    }); 

    ws.on("close", function() { 
     console.log("websocket connection close"); 
    }); 
}); 
console.log("websocket server created"); 

angularjs部分:

.run(function ($rootScope) { 
     if ("WebSocket" in window) 
      { 
       console.log("WebSocket is supported by your Browser!"); 
       $rootScope.updated = false; 
       // Let us open a web socket 
       socket = new WebSocket("ws://localhost:5000", "echo-protocol"); 
       socket.addEventListener("open", function(event) { 
        console.log("Connected"); 
       }); 

       // Display messages received from the server 
       socket.addEventListener("message", function(event) { 
        console.log("Server Says: " + event.data); 

        if (!$rootScope.updated) 
        if (event.data == "updated list") { 
         //here can passdata or update data 
         alert("Please refresh the page, new data should be available!"); 
        } 
       }); 

       // Display any errors that occur 
       socket.addEventListener("error", function(event) { 
        console.log("Error: " + event); 
       }); 

       socket.addEventListener("close", function(event) { 
        console.log("Not Connected"); 
       }); 
      } 

      else 
      { 
       // The browser doesn't support WebSocket 
       alert("WebSocket NOT supported by your Browser!"); 
      } 
    }) 

然後運行 ​​「節點websocket.js」 和應用 「HTTP服務器-o」

相關問題