データを書き込むだけで、データを受け取らないサーバーを実装する必要があります。私が見つけたすべてのeventmachineサーバーの例では、常にサーバーが最初にデータを受信し、次にデータで応答します。クライアントが接続した後、クライアントへのデータの書き込みを開始するために必要です。
post_initにループを入れてみましたが、うまくいかないようです...クライアントは接続し、サーバーは書き込みますが、クライアントは何も受信しないようです。提案?
テストサーバー:
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'
}
テストクライアント:
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
}
ありがとう...