Ruby 关于 EventMachine 的概念,请教!

linusliu · 2014年07月23日 · 最后由 linusliu 回复于 2014年07月23日 · 2177 次阅读

以前从没有考虑过多线程或并发什么的,但下一个工作需要 EM 的知识,现在刚开始学,比较吃力。有一个概念想请教大家一下:

肯定好多地方说的都不准确,大家包涵。 在介绍 EM 时,一个常见的例子就是 require 'rubygems'
02.require 'eventmachine'

  1. 04.class Echo < EM::Connection
  2. def receive_data(data)
  3. send_data(data)
  4. end
    08.end

  5. 10.EM.run do
  6. EM.start_server("0.0.0.0", 10000, Echo)
    12.end 那么 EM.run 实际上是启动了一个 reactor.根据上图,我是否可以理解那个 class Echo 就是注册的一个 Event handler?当这个 reactor 在 ("0.0.0.0", 10000)监听到一个事件,那么就调用 Echo 来处理,请问这样理解对吗?

关于 EM 的介绍文章,一般都会谈及 EM 自己的几个函数,比如 add_timer 或 add_periodic_timer.我是否可以这么理解,时间到了,就会触发一个事件,然后就会调用相应的回调函数,这里回调函数就是 event handler, 和 class Echo 起相同的作用?

对。 是。

这是 tcp 吧 ,如果是 udp 呢?

@yakczh udp 是什么?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号