Skip to content

Commit

Permalink
feat: show idle user count
Browse files Browse the repository at this point in the history
  • Loading branch information
BrotherJing committed Jun 6, 2020
1 parent 4c07913 commit d1b04d8
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 6 deletions.
5 changes: 3 additions & 2 deletions client/js/client.js
Expand Up @@ -1266,8 +1266,9 @@ let Lobby = Backbone.View.extend({
let name = $(e.target).val();
this.app.trigger("setName", name);
},
renderStatus: function(n){
this.$el.find(".nr-player-online").html(n);
renderStatus: function(data){
this.$el.find(".nr-player-online").html(data.online);
this.$el.find(".nr-player-idle").html(data.idle);
}
});

Expand Down
5 changes: 4 additions & 1 deletion client/templates/lobby.handlebars
Expand Up @@ -100,7 +100,10 @@
{{#if serverOffline}}
<span>服务器状态: <span class="status-offline">离线</span></span>
{{else}}
<span>在线人数: <span class="nr-player-online">0</span></span><br>
<span>在线人数: <span class="nr-player-online">0</span></span>
&nbsp;&nbsp;&nbsp;&nbsp;
<span>空闲人数: <span class="nr-player-idle">0</span></span>
<br>
<span>服务器状态: <span class="status-online">在线</span></span>
{{/if}}
</p>
Expand Down
3 changes: 3 additions & 0 deletions docs/mechanism.md
@@ -0,0 +1,3 @@
### 每局结束后socket重连

前端状态管理比较混乱,重连可以保证回到最初状态。否则会导致重复注册事件等情况。。(旧的view和新的view监听同一个socket等等)。后端现有的逻辑也是基于每局结束重连的。以后碰到瓶颈再优化。
9 changes: 7 additions & 2 deletions server/Connections.js
Expand Up @@ -27,8 +27,10 @@ var Connections = (function(){
}

r.remove = function(user) {
delete this._connections[user.getID()];
this._length--;
if (this._connections[user.getID()]) {
delete this._connections[user.getID()];
this._length--;
}
}

r.get = function() {
Expand All @@ -47,6 +49,9 @@ var Connections = (function(){
return this._length;
}

r.getIdleUserCount = function() {
return Object.values(this._connections).filter(user => user.isIdle()).length;
}

return Connections;
})();
Expand Down
4 changes: 4 additions & 0 deletions server/User.js
Expand Up @@ -91,6 +91,10 @@ var User = (function(){
this._rooms.push(room);
}

r.isIdle = function() {
return this._rooms.length === 0;
}

r.reconnect = function(socket) {
this.disconnected = false;
this.socket = socket;
Expand Down
5 changes: 4 additions & 1 deletion server/server.js
Expand Up @@ -65,7 +65,10 @@ io.on("connection", function(socket) { //global connection
})


io.emit("update:playerOnline", connections.length());
io.emit("update:playerOnline", {
online: connections.length(),
idle: connections.getIdleUserCount(),
});
});

})
Expand Down

0 comments on commit d1b04d8

Please sign in to comment.