簡體   English   中英

使用 nodejs 通過網站頁面保持連接的用戶

[英]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 routingload another page

檢查這個答案Ajax 加載頁面而不刷新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM