0.0
No commit activity in last 3 years
No release in over 3 years
Communicate through WebSocket with same interface as TCPSocket.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

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_TYPES defined at websocket-ruby are available. Default is :text.

Implemented

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