-1
我想知道是否可以在兩個單獨的瀏覽器上運行相同的應用程序,並從一個瀏覽器獲取更新?Angularjs應用程序的多個實例
讓我們說我有應用程序在Chrome上運行:http://127.0.0.1:8000/# 和Firefox或者Chrome的隱身標籤相同的開放等,當任何打開的會話更新的東西我想獲得其他會話更新/警報。 任何方向將不勝感激。
感謝
我想知道是否可以在兩個單獨的瀏覽器上運行相同的應用程序,並從一個瀏覽器獲取更新?Angularjs應用程序的多個實例
讓我們說我有應用程序在Chrome上運行:http://127.0.0.1:8000/# 和Firefox或者Chrome的隱身標籤相同的開放等,當任何打開的會話更新的東西我想獲得其他會話更新/警報。 任何方向將不勝感激。
感謝
我已經建立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」
你應該看看服務器端,而不是客戶端。 –
所以沒有服務器端它不可能? – karma
更具體地說,如果您希望更新即時發生(即沒有頁面重新加載),您可能需要在服務器上實現WebSockets,或者沿着這些線路執行某些操作。請參閱http://socket.io/(當它恢復時 - 現在似乎對我而言)。 –