我有一个NodeJS服务器,它通过Websocket-Connection与朋友通信。
服务器收到on('message')
时,它应运行一个函数,该函数的名称通过eval()
给出消息。
它工作正常,除非我完全不知道将调用该函数的位置放在哪里。
var http = require('http');
var ws = require('ws');
function render(vars) {
var server = http.createServer(function(req, res) {
.....
});
/* WEBSOCKET */
var wsServer = new ws.Server({server});
wsServer.on('connection', socket => {
socket.on('message', message => {
console.log('WS from template <-- ', message);
var wsIn = JSON.parse(message);
eval(wsIn.action);
});
});
}
当收到一条消息时,eval(wsIn.action)
应该运行一个名为..let的函数,假设runme
..所以我现在需要在哪里声明该函数?我尝试了一切,但是无论如何我都会得到
ReferenceError ::未定义Runme
编辑:
我发现了一些有趣的东西:
当我在runme();
中调用正常的函数onMessage
时,..一切都很酷..但是使用eval(runme);
时,什么也不会发生..没有错误,没有输出,什么都没有。