
[英]How to keep models updated for all users connected through websockets in AngularJS?
[英]Keep connected users through website pages using nodejs
我有帶有活動用戶列表的管理頁面。 它可以工作,但是當“userX”更改為另一個頁面時,所有客戶端都會更新,活動用戶列表中沒有“userX”。 1 秒前“userX”返回活躍用戶列表。
服務器控制台
UserX connected...
UserX disconnected... (UserX change to another page inside application)
Reason: transport close
UserX connected... (Because main layout force connection)
當“userX”更改為另一個頁面時,nodejs 觸發socket.on('disconnect',function(){})動作。 這會導致客戶端斷開連接...(UserX 更改到應用程序內的另一個頁面)原因:傳輸關閉
服務器代碼
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(81, function () {
console.log('NodeJs listening on port:81');
});
io.on('connection', function (socket) {
console.log('New client connected...');
socket.on('disconnect', function (reason) {
console.log('Client disconnected...');
console.log('Reason: ' + reason);
});
});
頁碼
<script type="text/javascript">
var socket = io(':81', {forceNew: true});
</script>
僅當瀏覽器關閉或用戶退出時,如何保持用戶在頁面之間的連接並斷開連接?
如果您使用頁面重定向來更改頁面,則頁面將被刷新。每次刷新頁面時,套接字都會斷開連接。
為此,您必須使用internal routing
來load another page
。
檢查這個答案Ajax 加載頁面而不刷新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.