Websockets - 停止分配给消息的变量改变
Websockets - stop variables assigned on messsage from changing
我在 node.js 中使用 ws 库。我在 node.js 网络应用程序和浏览器之间建立了 websocket 连接。我通过 websocket 向 web 应用程序发送消息,从而获得了浏览器 'request' 数据。 Web 应用程序解析消息以确定浏览器想要什么。因此,如果 'query_name' 是 'member_DOB',则网络应用程序将发回成员的出生日期。你明白了。
为此,我需要将传入的 'query_name' 分配给我的网络应用程序上的一个变量。问题是,如果我同时收到多条消息,变量会分配给第一个 'query_name',但在函数完成 运行 之前,变量会重新分配为等于下一个收到的消息 'query_name'.
如何 link 传入的每条单独消息的变量并防止其更改?
var query_name;
const WebSocket = require('ws');
const wss = new Websocket.Server({server:httpsServer});
ws.on('message', function (data) {
query_name = JSON.parse(data)[0];
// do a whole bunch of stuff with query_name;
}
“一个函数在 JavaScript 中用作闭包,因此创建了一个作用域”https://developer.mozilla.org/en-US/docs/Glossary/Scope。
因此,在函数内部定义 var 或 const,以便它可以绑定到被调用函数的特定实例。
const WebSocket = require('ws');
const wss = new Websocket.Server({server:httpsServer});
ws.on('message', function (data) {
const query_name = JSON.parse(data)[0];
// do a whole bunch of stuff with query_name;
}
我在 node.js 中使用 ws 库。我在 node.js 网络应用程序和浏览器之间建立了 websocket 连接。我通过 websocket 向 web 应用程序发送消息,从而获得了浏览器 'request' 数据。 Web 应用程序解析消息以确定浏览器想要什么。因此,如果 'query_name' 是 'member_DOB',则网络应用程序将发回成员的出生日期。你明白了。
为此,我需要将传入的 'query_name' 分配给我的网络应用程序上的一个变量。问题是,如果我同时收到多条消息,变量会分配给第一个 'query_name',但在函数完成 运行 之前,变量会重新分配为等于下一个收到的消息 'query_name'.
如何 link 传入的每条单独消息的变量并防止其更改?
var query_name;
const WebSocket = require('ws');
const wss = new Websocket.Server({server:httpsServer});
ws.on('message', function (data) {
query_name = JSON.parse(data)[0];
// do a whole bunch of stuff with query_name;
}
“一个函数在 JavaScript 中用作闭包,因此创建了一个作用域”https://developer.mozilla.org/en-US/docs/Glossary/Scope。
因此,在函数内部定义 var 或 const,以便它可以绑定到被调用函数的特定实例。
const WebSocket = require('ws');
const wss = new Websocket.Server({server:httpsServer});
ws.on('message', function (data) {
const query_name = JSON.parse(data)[0];
// do a whole bunch of stuff with query_name;
}