EventMachine是一个为ruby提供的事件驱动模型网络编程库, 就像Twisted和Python一样. 可以很容易的实现一个服务器和客户端通信的例子.
1. 首先安装eventmachine
gem install eventmachine
2. 创建一个服务器
#!/usr/bin/env ruby
require ‘rubygems’
require ‘eventmachine’
module EchoServer
def receive_data(data)
send_data(data)
end
end
EventMachine::run do
host = ’0.0.0.0′
port = 8080
EventMachine::start_server host, port, EchoServer
puts "Started EchoServer on #{host}:#{port}…"
end
3. 创建一个客户端
#!/usr/bin/env ruby
require ‘rubygems’
require ‘eventmachine’
module HttpHeaders
def post_init
send_data "GET /\r\n\r\n"
@data = ""
end
def receive_data(data)
@data << data
end
def unbind
if @data =~ /[\n][\r]*[\n]/m
$`.each {|line| puts ">>> #{line}" }
end
EventMachine::stop_event_loop
end
end
EventMachine::run do
EventMachine::connect ‘127.0.0.1’, 8080, HttpHeaders
end
分享到:
相关推荐
amqp, 基于EventMachine的RabbitMQ客户端更喜欢小兔子 ruby gem: 异步 ruby RabbitMQ客户端是一款功能丰富。基于eventmachine的RabbitMQ客户机,包含了电池。它实现了 ,支持AMQP的 RabbitMQ扩展。警告: 仅在使用...
em-http-request, 异步HTTP客户端( EventMachine + ruby ) EM-HTTP-Request 异步( EventMachine ) HTTP客户端,支持:异步 HTTP API用于单&并行请求执行保持活动状态和HTTP管道支持自动跟随 3xx 重定向最大深度自动 ...
如果您未使用EventMachine(或React器未在运行),则它将回退到使用XMLRPC :: Client的默认实现(使用Net :: HTTP)。 示例 require "eventmachine" require "em-xmlrpc-client" EM . run do Fiber . new do ...
EventMachine 是一个基于Reactor设计模式的、用于网络编程和并发编程的框架。Reactor模式描述了一种服务处理器,它接受事件并将其分发给已注册的事件处 理。这种模式的好处就是清晰的分离了时间分发和处理事件的应用...
使用ruby eventmachine和em-http-server gem,完成一个简单的提供文件下载功能的HttpServer; 使用了EM的FileStreamer来异步发送文件,发送文件时先组装了header,然后调用FileStreamer。 代码: require '...
evma_httpserver, 在eventmachine之上,构建了一个事件服务器 eventmachine_httpserver EM::HttpServer vs-薄 careo | is there a 25 word version of how it differs from thin? t
基于EventMachine的异步Ruby WebSocket服务器。 查看examples目录,或查看博客文章: 。 简单服务器示例 require 'em-websocket' EM . run { EM :: WebSocket . run ( :host => "0.0.0.0" , :port => 8080 ) do | ...
eventmachine, EventMachine 关于 EventMachine 什么是 EventMachineEventMachine是一个事件驱动的I/O 和 ruby的轻量级并发库。 it I/O 。node.js 。python Twisted 。和 provides提供
完全可编程的DNS服务器:无缝集成数据库系统,服务器和缓存系统。 强大的异步DNS客户端:基于EventMachine的基础来提供灵活的域名解析。 通过正则表达式和资源类来匹配DNS查询请求。 修改DNS请求或操纵DNS...
EM-HTTP-请求 异步(EventMachine)HTTP客户端,支持: 异步HTTP API,用于执行单个和并行请求保持活动和HTTP流水线支持自动跟随3xx重定向,最大深度自动gzip和deflate解码流响应处理流式上传文件HTTP代理和SOCKS5...
这种独特的组合使EventMachine成为关键网络应用程序设计人员的首选,这些应用程序包括Web服务器和代理,电子邮件和IM生产系统,身份验证/授权处理器等等。 EventMachine自2000年代初以来就已经存在,并且是一个成熟...
是一个功能丰富的基于EventMachine的RabbitMQ客户端,包括电池。 这是Ruby的原始RabbitMQ客户端。 如今,有非常可靠的替代方法可用:用于MRI的和用于JRuby的 。 它实现了并支持。 警告:仅当您已经使用...
thin.gem eventmachine.gem for windows
EventMachine::IRC::Server 为 Ruby 的 EventMachine 提供了一个基本的 IRC 服务器。 安装 将此行添加到应用程序的 Gemfile 中: gem 'eventmachine-irc-server' 然后执行: $ bundle 或者自己安装: $ gem ...
em-secure-api 自动验证请求的真实性、完整性和唯一性,检查客户端授权并使用简单的路由配置将 API 连接到实现。 通过解决安全性和布线问题,开发人员可以专注于构建使 API 有用的功能。 通过建立在 EventMachine ...
客户端不使用eventmachine,因此不需要后台线程。因此,从脚本/控制台和乘客处使用它要容易得多。它还解决了缓冲消息和ack响应的问题
该实现基于Ruby / EventMachine库。 注意:中断更改从0.1.2到0.1.3 。 见下文。 如需帮助,请在此处使用Google: 词汇表 SMSC:SMS中心。 移动运营商通常在其网络中运行SMSC。 SMSC存储并转发SMS消息。 MO:...
EventMachine和X有什么区别? EventMachine与那里的许多其他事件发出器非常相似,唯一的主要区别是所有事件处理程序调用都包装在JavaScript setTimeout函数调用中,且其超时值为0 。 通过“暂停” JavaScript执行,...
杂耍 Jugglite 是 Maccman 令人难以置信的的替代品。 它使用将事件从您的应用程序推送到客户端的浏览器。 它使用进行发布/订阅...这仅适用于支持机架 async.callback 的基于 EventMachine 的网络服务器。 我只在 Thin