Я новичок в Elixir и пытаюсь создать пиров, которые отправляют определенное количество сообщений всем другим пирам.Кроме того, есть определенное время, после которого узел должен прекратить вещание и прием сообщений.У меня вопрос, как сделать так, чтобы он отправлял и получал сообщения одновременно?И вторая проблема - как включить тайм-аут для этого.Это мой текущий код:
messages_sent = Map.new()
messages_received = Map.new()
receive do
#Distribute messages
for dest <- peers, do:
for i <- 0..max_broadcasts, do: #Max broadcast specifies how many messages send to each peer
send dest, { :peer_broadcast, self()}
#Adds peer to map or update if it is already present
Map.update(messages_sent, dest, 0, &(&1 + 1))
end
end
#Receiving messages
{ :peer_broadcast, peer} ->
Map.update(messages_received, peer, 0, &(&1 + 1))
end #receive