diff --git a/tools/client/node-websocket-client-with-retry.js b/tools/client/node-websocket-client-with-retry.js new file mode 100644 index 0000000..a6a1b71 --- /dev/null +++ b/tools/client/node-websocket-client-with-retry.js @@ -0,0 +1,69 @@ +/** + * node websocket server + */ +// 引入websocket依赖 +const WebSocket = require('websocket').client; + +// 创建一个websocket客户端对象 +const client = new WebSocket(); + +// 定义一个连接地址,这里假设是ws://localhost:8080 +const url = 'ws://localhost:8080'; + +// 定义一个重连次数,这里假设是3次 +const maxRetries = 3; + +// 定义一个当前重连次数,初始为0 +let currentRetries = 0; + +// 定义一个重连函数 +function reconnect() { + // 如果当前重连次数小于最大重连次数,就尝试重新连接 + if (currentRetries < maxRetries) { + // 增加当前重连次数 + currentRetries++; + // 打印一条重连消息 + console.log('Reconnecting to ' + url + ' (' + currentRetries + '/' + maxRetries + ')'); + // 调用client的connect方法 + client.connect(url); + } else { + // 否则,打印一条放弃消息 + console.log('Giving up on ' + url); + } +} + +// 监听连接事件 +client.on('connect', function (connection) { + // 连接成功后,打印一条消息 + console.log('Connected to ' + url); + // 将当前重连次数重置为0 + currentRetries = 0; + + // 监听消息事件 + connection.on('message', function (message) { + // 收到消息后,打印出来 + console.log('Received: ' + message.utf8Data); + }); + + // 监听关闭事件 + connection.on('close', function (reasonCode, description) { + // 连接关闭后,打印一条消息 + console.log('Disconnected from ' + url); + // 调用重连函数 + reconnect(); + }); + + // 发送一条测试消息 + connection.sendUTF('Hello from nodejs'); +}); + +// 监听错误事件 +client.on('connectFailed', function (error) { + // 连接失败后,打印一条错误信息 + console.error('Connect Error: ' + error.toString()); + // 调用重连函数 + reconnect(); +}); + +// 开始连接 +client.connect(url); diff --git a/tools/client/node-websocket-client.js b/tools/client/node-websocket-client.js new file mode 100644 index 0000000..62d8721 --- /dev/null +++ b/tools/client/node-websocket-client.js @@ -0,0 +1,38 @@ +// 引入websocket依赖 +const WebSocket = require('websocket').client; + +// 创建一个websocket客户端对象 +const client = new WebSocket(); + +// 定义一个连接地址,这里假设是ws://localhost:8080 +const url = 'ws://localhost:8080'; + +// 监听连接事件 +client.on('connect', function (connection) { + // 连接成功后,打印一条消息 + console.log('Connected to ' + url); + + // 监听消息事件 + connection.on('message', function (message) { + // 收到消息后,打印出来 + console.log('Received: ' + message.utf8Data); + }); + + // 监听关闭事件 + connection.on('close', function (reasonCode, description) { + // 连接关闭后,打印一条消息 + console.log('Disconnected from ' + url); + }); + + // 发送一条测试消息 + connection.sendUTF('Hello from nodejs'); +}); + +// 监听错误事件 +client.on('connectFailed', function (error) { + // 连接失败后,打印一条错误信息 + console.error('Connect Error: ' + error.toString()); +}); + +// 开始连接 +client.connect(url);