簡體   English   中英

如何將用戶名從php會話存儲到nodejs中的socket.io庫中,並且套接字刷新在頁面刷新時斷開。為什么?

[英]How to store usernames from php session to socket.io library in nodejs and socket connection disconnects on page refresh.Why?

我正在為我的Web門戶創建一個聊天應用程序。我曾經將用戶名從php會話保存到nodejs套接字io庫..我很困惑..可以在套接字對象中存儲1萬個用戶。如果是,那么如何維護該用戶列表? 另一個問題是,當用戶從一頁導航到另一頁時。套接字斷開並再次連接。這是否會影響我的應用程序性能或nodejs服務器的性能?

請通過教程或博客指導我。.我尚未找到有關套接字連接管理的相關文檔。

您可以將數據存儲到socket 例如,

在服務器端,像這樣使用

    var socketIo = require('/socket.io').listen(8080);
    var usernames=[];    

    socketIo.sockets.on('connection', function (socket) {    
        socket.on('storeUserData', function (data) {  
           var userInfo = new Object();
           userInfo.userName = data.userName;
           userInfo.SocketId = socket.id;
            usernames.push(userInfo);
        });    

        socket.on('disconnect', function (data) {
         var len = usernames.length;

            for(var i=0; i<len; i++){
                var user = usernames[i];

                if(user.socketId == socket.id){
                    usernames.splice(i,1);
                    break;
                }
            }    
        });
    });

在客戶端,您需要添加此

<script>
    var userName = <?php echo $_SESSION['userName'] ?>;        
    var socket = io.connect('http://localhost', {port: 8080});    
    socket.on('connect', function (data) {
        socket.emit('storeUserData', { 'userName' : userName });
    });
</script>

套接字連接在頁面刷新時斷開連接。為什么?

這是socket.io默認行為。

暫無
暫無

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

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