我很难理解 Javascript 风格的函数定义。
我有一个 Websocket 服务器:
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer();
wss.on('connection', function (ws) {
ws.on('message', function (message) {
console.log('received: %s from client', message);
})
ws.send('hello client');
})
我想在调用另一个函数 importantEvent()
时向连接的客户端发送消息。
function importantEvent(message) {
//send message to the connected client
ws.send('hello client');
}
在 importantEvent()
中调用 ws.send()
的好方法是什么?
最佳答案
我使用 EventEmitter
来做类似的事情,以避免强大的模块强度。
// eventManager.js
const EventEmitter = require('events');
class EventManager extends EventEmitter {}
const eventManager = new EventManager();
module.exports = eventManager;
// websocket.js
var eventManager = require('eventManager');
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer();
wss.on('connection', function (ws) {
...
})
function broadcast(data, filter) {
wss.clients.forEach( ... // depends on library using to web-socket
}
eventManager.on('my-event', function (arg1, arg2) {
broadcast({arg1, arg2})
});
// in any other files
var eventManager = require('eventManager');
eventManager.emit('my-event', 'hello', 'world');
关于javascript - 调用回调中定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52883866/