Project

ircmad

0.01
No commit activity in last 3 years
No release in over 3 years
Bringing IRC into WebSocket
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Ircmad

Bringing IRC into WebSocket.

IRC <-> WebSoket Server(This product) <-> WebSocket Client

If you use this gateway, you can assess IRC from browser easily.

Data format is JSON.

WebSocket Server - '{"from":"ToQoz","to":"#channel1","body":"hello world","type":"privmsg"}' -> WebSocket Client
WebSocket Server <- '{"to":"#channel1","body":"yes!!!"}' -> WebSocket Client

Installation

Add this line to your application's Gemfile:

gem 'ircmad'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ircmad

Usage

# proxy.rb
require 'ircmad'
Ircmad.new do
  set :host, '127.0.0.1'
  set :port, 6667
  set :channel_list, [ '#channel', '#channel2' ]
  set :username, 'username'
  set :password, 'password'  # if required
  set :websocket_port, 3333  # [default is unused port selected automatically]
end.run!

$

$ ruby proxy.rb

In browser

var socket = new WebSocket('ws://localhost:3333')

// Send
socket.send(JSON.stringify({ to: '#channel1', body: 'yeah', type: 'privmsg' }))
socket.send(JSON.stringify({ type: 'join', to: '#ruby' }))

// Get
socket.onmessage = function(msg) { console.log(msg.data) };
// => '{"from":"ToQoz","to":"#channel1","body":"hello world","type":"privmsg"}'

// => {"from":"ToQoz","to":"#ruby","body":null,"type":"join"}
// => {"from":"hybrid7.debian.local","to":"ToQoz","body":"@","type":"353"}
// => {"from":"hybrid7.debian.local","to":"ToQoz","body":"#ruby","type":"366"}

Examples

In examples/

Links

Blog entry that is introduction of this product. (In Japanese) WebSocketからIRC繋げるやつ作った

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request