我正在尝试使用 flapjax 实现一个小型聊天服务。我使用 eventStream 来获取连接到服务器的所有客户端,并且在广播消息时('message' 上的函数),我使用将消息发送到当前客户端的函数映射到此 eventStream。
// Event stream yielding received clients
var clientReceiverE = receiverE();
// Event stream collecting all the clients
var clientsE = clientReceiverE.collectE([], function (client, clients) {return clients.concat([client]);});
socket.on('connection', function(client) {
clientReceiverE.sendEvent(client);
for (i = 0; i < chatMessages.length; i++) {
client.emit('message', chatMessages[i]);
}
client.on('message', function(message) {
chatMessages.push(message);
//for (i = 0; i < clients.length; i++) {
// clients[i].emit('message', message);
//}
mapE(clientReceiverE, function(client) {console.log(client); client.emit('message', message); return client});
});
client.on('nickname', function(name) {
});
});
使用此代码在事件流上注册客户端成功,但 mapE 不会导致所有这些客户端的循环。有人知道这里有什么问题吗?