[英]How do i pass a PHP variable or session through nodeJS to socket.io on connection
[英]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.