Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jschat

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jschat

  • 0.3.7
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

!http://github.com/alexyoung/jschat/raw/8c11578439770962d86d6444d0c159cfb2affbcd/http/public/images/jschat.gif!

JsChat is a chat system. It has an easy to learn JSON protocol, an ncurses client, a web app, and a server. You can try it right now on "jschat.org":http://jschat.org.

JsChat is similar to IRC, but it's a fundamentally simpler system.

The web app has lots of interesting features:

  • IRC-like commands: /names, /name new_name (/nick works too), /clear, /lastlog
  • It's pretty tiny; it's built with "Sinatra":http://www.sinatrarb.com and "Prototype":http://prototypejs.org
  • Auto-linking: pasting an image displays it inline, youtube and vimeo videos will appear as well
  • Last messages are displayed on join: the last 100 messages are displayed, so you don't feel lost when you join a room
  • Tab completion!

!http://dl.getdropbox.com/u/221414/blogs/jschat.png!

h3. Installation

You can install with rubygems:

gem install jschat

Then run jschat-server and jschat-client to try out the console client locally.

To try out the web client, run jschat-web and visit "http://localhost:4567":http://localhost:4567.

h3. Ruby Library Requirements

These gems are required by JsChat:

  • eventmachine
  • ncurses (for the client)
  • json

h3. Usage

  • Run the server with ./server.rb
  • Connect a client with ./client.rb

The web app must be run alongside the server. The web app must be started in production mode:

http/jschat.rb -e production

The web app currently has no database dependencies, it's a wrapper that links cookies to JsChat server proxies. You can run it on port 80 by configuring Rack or an Apache proxy. I have Apache set up this way on "jschat.org":http://jschat.org.

h3. Configuration Files

These are the default locations of the configuration files. You can override them with --config=PATH:

  • Client: ~/.jschat/config.json
  • Server: /etc/jschat/config.json

The web app will use the same configuration file as the server so it can find out where the server is.

The file format is JSON, like this:

{ "port": 3001 }

h3. Server Configuration Options

{
  "port": integer,
  "ip": "string: IP address to bind to",
  "tmp_files": "string: path to tmp files (including PID file)"
}

h3. Client Commands

  • Change name or identify: /nick name
  • Join a room: /join #room
  • Join a room (alias): /j #room

h3. Protocol Design

The protocol is designed to be as close to executable JSON as possible, so clients and servers are simple to implement.

Look at client.rb JsChat::Protocol to see what I mean.

h3. Hey, this is like Campfire!

I love Campfire and I didn't intend for JsChat to compete with it. JsChat is just a fun project, it doesn't offer Campfire's business-friendly interface, file hosting, transcripts and Basecamp integration.

h3. Credits

JsChat was created by "Alex Young":http://alexyoung.org for "Helicoid":http://helicoid.net. A growing group of friends are helping out:

If you'd like to contribute, send "alexyoung":http://github.com/alexyoung a message on GitHub.

FAQs

Package last updated on 13 Apr 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc