我正在嘗試使用flapjax實現一個小型chatservice。我使用eventStream來獲取連接到服務器的所有客戶端,並且在廣播消息('消息'上的函數)時,我將此eventStream映射到將消息發送到當前客戶端的函數。flapjax從事件流中獲取最後一個元素
// 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) {
});
});
客戶對eventstream的成功在註冊使用此代碼,但梅普不會導致一個循環對所有這客戶。有人知道這裏有什麼問題嗎?