Ruby/Rubyの基礎知識

イベント駆動I/OライブラリEventMachineの使い方

イベント駆動I/OライブラリであるEventMachineの使い方を紹介します。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

EventMachineとは

eventmachineは、Rubyでイベント駆動I/Oや並行処理の機能を提供する低レイヤーなライブラリです。

簡単なechoサーバ

まずはgemをインストールします。以下GemfileのようにBundlerを使うか、あるいは単純にgem install eventmachineと叩いてください。

EventMachineを使って簡単なechoサーバを作成します。

前半のmodule EchoServerがサーバの定義、後半のEventMachine::runブロック内が実行本体です。EchoServerには何もincludeせず、おもむろにpost_init(クライアント接続時に実行される処理)とreceiver_data(クライアントからデータが送られてきた時に実行される処理)のふたつのメソッドを定義します。

EventMachone::runブロック内でEventMachine::start_serverを呼び、ホストとポート番号、そして先ほど定義したEchoServerモジュールを渡してやればこれだけでサーバが起動します。

実行ログは以下の通りです。

過去の記事、Rubyによるネットワーク通信の基礎 -Ruby- All Aboutでは似たような処理をTCPServerクラスを直接使って実装したので、比較してみてください。

EventMachineは他にも、EM.open_keyboardでユーザのキーボード入力を受け取ることもできます。

次のページでは、EM.deferEM::Deferrableを利用してイベント発生のタイミングで処理を実行させる方法を説明します。

  • 1
  • 2
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます