Есть сервер, основанный на GServer.
Есть также клиенты, посылающие сообщения серверу.
Сообщения должны рассылаться остальным клиентам, подключенным к серверу.
Как с помощью rspec протестировать одновременные подключения(когда один клиент шлёт, а другие слушают)?
Исходники:
# Handle each connection<br>
def serve(io)<br>
io.puts("LOGIN\n")<br>
# Listen for identifier<br>
user = io.gets.chomp<br>
<br>
...<br>
<br>
# Add connection to the list<br>
@mutex.synchronize { @chatters[user] = io }<br>
<br>
# Get and broadcast input<br>
loop do<br>
<br>
incoming = io.gets<br>
broadcast(incoming, io)<br>
<br>
end<br>
end<br>
<br>
#Send message out to everyone, but sender<br>
def broadcast(message="", sender)<br>
<br>
# Mutex for safety - GServer uses threads<br>
@mutex.synchronize do<br>
<br>
@chatters.each do |chatter|<br>
<br>
socket = chatter[1]<br>
<br>
# Do not send to sender<br>
if sock != sender<br>
<br>
sock.print(message)<br>
<br>
end<br>
<br>
end<br>
<br>
end<br>
end