Я создал 2 веб-сервер для этой цели:
один работает веб-сокет. прочее приложение.
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/ (ну, когда он возвращается - кажется, для меня сейчас не работает). –