Skip to main content

A sockJS based Chat-Server/Chat-System primary using the SockJS protocol.

Details

Author:

Anirban Roy Das

Email:

anirban.nick@gmail.com

Copyright(C):

2016, Anirban Roy Das <anirban.nick@gmail.com>

Check sockjsChat/LICENSE file for full Copyright notice.

Overview

sockjsChat is a very basic Chat Server which can be set up locally to chat in your LAN. It supports both Public Chat among all participants connected simultaneously at a particulartime and also Private Chat between those individual participants.

It uses the sockjs protocol to implement the real time message passing system. SockJS is implemented in many languages, primarily javascript to talk to servers in real time using its protocol, which tries to create a duplex bi-directional connectin between the Client(browser) and the Server. The server should also implement the sockjs protocol. Thus, using the sockjs-tornado library which exposes the sockjs protocol in tornado server. It first tries to create a Websocket connection, and if it fails then it fallbacks to other transport mechanisms, such as ajax, long polling, etc.

You can read more about sockjs here

Technical Specs

sockjs-client:

Advance Websocket Javascript Client

Tornado:

async python web server

sockjs-tornado:

sockjs websocket server implementation for Tornado

Installation

Prerequisites

  1. python 2.7+

  2. tornado

  3. sockjs-tornado

  4. sockjs-client

Install

pip install sockjsChat

If the above dependencies do not get installed by the above command, then use the below steps to install them one by one.

Step 1 - Install pip

Follow the below methods for installing pip. One of them may help you to install pip in your system.

Step 2 - Install tornado

pip install tornado

Step 3 - Install sockjs-tornado

pip install sockjs-tornado

Usage

After having installed sockjsChat, just run the following command to use it :

  • Start Server

    $ sockjsChat [options]
  • Options

    –port:

    Port number where the chat server will start

  • Example

    $ sockjsChat --port=8765
  • Stop Server

    Click Ctrl+C to stop the server.

TODO

  1. Add Private Chat functionality.

  2. Manage Presence Management, sent, delivered acknowledgements.

  3. Message Persistence and delivery of messages to offline clients.

  4. Add Blog post regarding this topic.

Release files for sockjsChat 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sockjsChat 1.1.0
File Size Uploaded
sockjsChat-1.1.0.tar.gz 26.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sockjsChat 1.1.0
File Interpreter ABI Platform
sockjsChat-1.1.0-py2-none-any.whl Python 2 none any Details

Total release size: 54.8 kB

Release files / sockjsChat-1.1.0.tar.gz

Download URL sockjsChat-1.1.0.tar.gz
Size 26.3 kB
Tags Source
SHA-256 checksum
How to use checksums
adaf649ad3ef6e83509e5abc584d8db7a559e3a89ae5d1aae7133bc3eee29c7e
BLAKE2b-256 checksum
How to use checksums
00a998b82e23bf2a55a577ae888123a8754713f3ea61592cf20317af6d3437c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / sockjsChat-1.1.0-py2-none-any.whl

Download URL sockjsChat-1.1.0-py2-none-any.whl
Size 28.5 kB
Tags Python 2
SHA-256 checksum
How to use checksums
8778fe140f81528b661d268f5d78326e766cfa8ffaefed489711193a09bf1afb
BLAKE2b-256 checksum
How to use checksums
a3fa041aa0759a4887bf4d59143648eb715725c9a68137d708447d17599f3333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page