Ich muss einen Server implementieren, der nur Daten schreibt, nicht erhalten. Bei allen Beispielen des eventmachine-Servers, die ich gefunden habe, erhält der Server immer zuerst Daten und antwortet dann mit Daten. Ich brauche es, um nur Daten zu einem Client zu schreiben, nachdem ein Client eine Verbindung herstellt.Wie kann ein EventMachine Server nur Daten schreiben?
Ich habe versucht, nur eine Schleife in post_init, aber das scheint nicht zu funktionieren ... der Client verbindet, der Server schreibt, aber der Client scheint nie etwas zu empfangen. Vorschläge?
Der Testserver:
require 'rubygems'
require 'eventmachine'
require 'time'
module TestServer
def post_init
puts "-- client connected, sending data --"
while true do
send_data "Hello from TestServer\n"
puts "sent #{Time.now.iso8601}"
end
end
end
EventMachine::run {
EventMachine::start_server "127.0.0.1", 4001, TestServer
puts 'running test server on 4001'
}
Der Test-Client:
require 'rubygems'
require 'eventmachine'
module Forwarder
def post_init
puts "-- connected to server --"
end
def receive_data data
# none of the following is ever output
puts "in receive_data"
puts data
end
end
EventMachine::run {
EventMachine::connect '127.0.0.1', 4001, Forwarder
}
Dank ...