mirror of
https://github.com/xfgryujk/blivechat.git
synced 2025-03-13 19:30:46 +08:00
减少判断心跳超时的开销
This commit is contained in:
parent
00c47a3e55
commit
60b9f81fe2
@ -165,15 +165,13 @@ class ChatHandler(tornado.websocket.WebSocketHandler): # noqa
|
|||||||
|
|
||||||
def on_message(self, message):
|
def on_message(self, message):
|
||||||
try:
|
try:
|
||||||
# 超时没有加入房间也断开
|
|
||||||
if self.has_joined_room:
|
|
||||||
self._refresh_receive_timeout_timer()
|
|
||||||
|
|
||||||
body = json.loads(message)
|
body = json.loads(message)
|
||||||
cmd = body['cmd']
|
cmd = body['cmd']
|
||||||
|
|
||||||
if cmd == Command.HEARTBEAT:
|
if cmd == Command.HEARTBEAT:
|
||||||
pass
|
# 超时没有加入房间也断开
|
||||||
|
if self.has_joined_room:
|
||||||
|
self._refresh_receive_timeout_timer()
|
||||||
|
|
||||||
elif cmd == Command.JOIN_ROOM:
|
elif cmd == Command.JOIN_ROOM:
|
||||||
if self.has_joined_room:
|
if self.has_joined_room:
|
||||||
|
@ -183,7 +183,6 @@ export default class ChatClientDirect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onWsMessage(event) {
|
onWsMessage(event) {
|
||||||
this.refreshReceiveTimeoutTimer()
|
|
||||||
if (!(event.data instanceof ArrayBuffer)) {
|
if (!(event.data instanceof ArrayBuffer)) {
|
||||||
console.warn('未知的websocket消息类型,data=', event.data)
|
console.warn('未知的websocket消息类型,data=', event.data)
|
||||||
return
|
return
|
||||||
@ -226,6 +225,7 @@ export default class ChatClientDirect {
|
|||||||
}
|
}
|
||||||
case OP_HEARTBEAT_REPLY: {
|
case OP_HEARTBEAT_REPLY: {
|
||||||
// 服务器心跳包,包含人气值,这里没用
|
// 服务器心跳包,包含人气值,这里没用
|
||||||
|
this.refreshReceiveTimeoutTimer()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
|
@ -99,11 +99,11 @@ export default class ChatClientRelay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onWsMessage(event) {
|
onWsMessage(event) {
|
||||||
this.refreshReceiveTimeoutTimer()
|
|
||||||
|
|
||||||
let { cmd, data } = JSON.parse(event.data)
|
let { cmd, data } = JSON.parse(event.data)
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case COMMAND_HEARTBEAT: {
|
case COMMAND_HEARTBEAT: {
|
||||||
|
this.refreshReceiveTimeoutTimer()
|
||||||
|
|
||||||
// 不能由定时器触发发心跳包,因为浏览器会把不活动页面的定时器调到1分钟以上
|
// 不能由定时器触发发心跳包,因为浏览器会把不活动页面的定时器调到1分钟以上
|
||||||
this.websocket.send(JSON.stringify({
|
this.websocket.send(JSON.stringify({
|
||||||
cmd: COMMAND_HEARTBEAT
|
cmd: COMMAND_HEARTBEAT
|
||||||
|
Loading…
Reference in New Issue
Block a user