eventmachine网络学习

2013年9月24日 21:10

EventMachine是Ruby一个基于Reactor设计模式的、用于网络编程和并发编程的事件驱动框架。

EventMachine的rdoc写的很详细,EventMachine可以处理任何协议,一些基本的协议已经实现,非常适合做服务器开发。

 

require 'eventmachine'
class Echo < EM::Connection
 def receive_data(data)
send_data(data)
 end
end
EM.run do
 EM.start_server("0.0.0.0", 10000, Echo)
end

主要有4个回调方法:

  • post_init 在实例初始化的时候调用
  • connection_completed 在连接建立后调用
  • receive_data(data) 当接收到客户端的数据时调用,数据以chunk的到达,需要自己负责处理
  • unbind 当客户端断开连接后调用

作为一个练习,掌握eventmachine的基本用法,这里是一个很好的例子。