[英]Angularjs multiple instances of app
I was wonder if it is possible to run same app on two separate browser and get updates from one to other?我想知道是否可以在两个单独的浏览器上运行相同的应用程序并从一个浏览器获取更新?
let's say I have app running on chrome: http://127.0.0.1:8000/# and same open in Firefox or other incognito chrome tab, when any of opened session updates something I want to get that update/alert on other session.假设我有应用程序在 chrome 上运行: http : //127.0.0.1 : 8000/#并且在 Firefox 或其他隐身 chrome 选项卡中打开,当任何打开的会话更新某些内容时,我想在其他会话上获得该更新/警报。 Any direction would be appreciated.任何方向将不胜感激。
Thanks谢谢
I have created 2 webserver for this purpose:为此,我创建了 2 个网络服务器:
one runs web-socket.一个运行网络套接字。 other app.其他应用程序。
websocket example nodejs: 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 part: 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!");
}
})
then run "node websocket.js" and app "http-server -o"然后运行“node websocket.js”和应用程序“http-server -o”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.