WebSocketIO

Build Status

WebSocketIO is a Ruby library. It aims to capacitate applications or libraries implemented with TCPSocket to communicate with WebSocket easily.

WebSocketIO::Client is a object which can communicate through WebSocket with same interface as TCPSocket.

Inspired by websocket-stream of Node.js

Installation

Add this line to your application's Gemfile:

gem 'websocketio'

And then execute:

$ bundle

Or install it yourself as:

$ gem install websocketio

Usage

require 'websocketio'

tcpsocket = TCPSocket.new('localhost', 8080)
websocketio = WebSocketIO::Client.new(tcpsocket, url: 'ws://localhost:8080')
websocketio.write 'How are you?'

trap('INT') { websocketio.close }
while c = websocket.read(1) do
  STDOUT << c
end

new(socket, handshake_args, options = {}) -> WebSocketIO::Client

socket

It requires a connected socket object. All sockets which have same interface as TCPSocket are available. When you want to connect over proxy, you may use ruby-proxifier. See example directory.

handshake_args

Parameters for WebSocket handshaking. This arg is given to WebSocket::Handshake::Client.new which is defined at websocket-ruby.

options[:write_type]

Type (opcode) of WebSocket frame sent by this object. Keys in FRAME\_TYPE defined at websocket-ruby are available. Default is :text.

Implemented

  • WebSocketIO::Client
    • new
    • write
    • read
    • getc
    • close