flapjax를 사용하여 작은 chatservice를 구현하려고합니다. 나는 eventStream을 사용하여 서버에 연결하는 모든 클라이언트를 가져오고, 메시지 ('message'의 함수)를 브로드 캐스팅 할 때이 이벤트 스트림을 현재 클라이언트에 메시지를 보내는 함수로 매핑합니다.flapjax가 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) {
});
});
eventstream에 대한 고객의 registring이 코드에 성공하지만, MAPE이 모든 클라이언트에 걸쳐 루프가 발생하지 않습니다. 아무도 여기서 무엇이 잘못되었는지를 압니까?