2
데이터를 쓰고 수신하지 않는 서버를 구현해야합니다. 내가 발견 한 모든 이벤트 머신 서버 예제는 항상 서버가 먼저 데이터를 수신 한 다음 데이터로 응답합니다. 클라이언트 연결 후 클라이언트에 데이터 쓰기를 시작해야합니다.이벤트 머신 서버에 데이터를 쓰는 방법은 무엇입니까?
나는 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
}
감사합니다 ... #eventmachine에 tmm1하는