首页 > 解决方案 > 如何改进 websocket 'onmessage'

问题描述

我正在学习 websockets,并想制作一个 websocketonmessage记录器,它将接收到的数据写入 mongodb。

我开始我的脚本

node listner.js

listner.js:

'use strict';

let DBAbstract = require('./db-controller');
const WebSocket = require('ws');

// getting an instance of a mongodb connection
let mongoInstance = new DBAbstract();

const ws = new WebSocket('ws://ws-url');

ws.onopen = function() {
  console.log('Open')
};
ws.onmessage = function(d) {
  console.log(d.data)
  mongoInstance.insertOne(JSON.parse(d.data)) //Promise which add the data
};

ws.onclose = function() {
  console.log('Close')
};

ws.onerror = function(e) {
  console.log(e.code)
};

到目前为止,我制作了这个脚本并且它有效。

当有一个onmessage事件时,我会得到一个像这样的小 JSON。

{ "event":2,
  "value": 12,
  "item": 'Spoon' }

onmessage我只是想知道就接收到的事件的可扩展性而言,这是否足够。

我的意思是当我在 10 秒内收到三倍的小 JSON 时没有问题。

当我在 10 秒内收到 100 个小 JSON 时会发生什么?onmessage作为 Client接收事件的限制在哪里?

我的 listner.js 会因为无法处理大量onmessage事件而崩溃吗?或者我的 mongodb 会因为无法处理数据库写入量而崩溃

我可以改进这段代码吗?

标签: javascriptperformancewebsocket

解决方案


推荐阅读