Skip to content

Commit 6377f58

Browse files
committed
add heartbeat timeout to websocket
1 parent b656474 commit 6377f58

5 files changed

Lines changed: 16 additions & 1 deletion

File tree

OpenFlow/src/Messages/Message.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ export class Message {
102102
this.Ping(cli);
103103
break;
104104
case "pong":
105+
cli.lastheartbeat = new Date();
105106
break;
106107
case "listcollections":
107108
this.ListCollections(cli);

OpenFlow/src/WebSocketClient.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export class WebSocketClient {
4242
public remoteip: string;
4343
public clientagent: string;
4444
public clientversion: string;
45+
public lastheartbeat: Date = new Date();
4546

4647

4748
user: User;

OpenFlow/src/WebSocketServer.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@ export class WebSocketServer {
6060
console.error(error);
6161
cli.Close();
6262
}
63+
var now = new Date();
64+
var seconds = (now.getTime() - cli.lastheartbeat.getTime()) / 1000;
65+
if (seconds >= 20) {
66+
if (cli.user != null) {
67+
WebSocketServer._logger.info("client " + cli.user.name + "/" + cli.clientagent + " timeout, close down");
68+
} else {
69+
WebSocketServer._logger.info("client not signed/" + cli.clientagent + " timeout, close down");
70+
}
71+
cli.Close();
72+
return false;
73+
}
6374
return cli.ping();
6475
});
6576
if (count !== WebSocketServer._clients.length) {

OpenFlow/src/amqpwrapper.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,10 @@ export class amqpwrapper {
190190
if (this.queues[queue] != null) {
191191
q = this.queues[queue];
192192
} else {
193+
this._logger.error("[AMQP] Request for removing unknown consumer " + queue);
193194
return;
194195
}
196+
this._logger.info("[AMQP] Remove queue consumer " + queue);
195197
await this.channel.cancel(q.consumerTag);
196198
delete this.queues[q.queue];
197199
}

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.6
1+
1.0.7

0 commit comments

Comments
 (0)