{ "info": { "author": "Anirban Roy Das", "author_email": "anirban.nick@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: CPython" ], "description": "rabbitChat\n===========\n\nA Chat-Server/Chat-System based on AMQP protocol(RabbitMQ Message Broker)\n\nDocumentation\n--------------\n\n**Link :** http://rabbitchat.readthedocs.io/en/latest/index.html\n\n\n\n\nDetails\n--------\n\n\n:Author: Anirban Roy Das\n:Email: anirban.nick@gmail.com\n:Copyright(C): 2016, Anirban Roy Das \n\nCheck ``rabbitChat/LICENSE`` file for full Copyright notice.\n\n\n\nOverview\n---------\n\nrabbitChat is a very simple 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 particular time and also **Private Chat** betweent those individual participants.\n\nIt uses the `AMQP `_ protocol to implement the real time message passing system. **AMQP** is implemented in many languages and in many softwares, once of such is `RabbitMQ `_ , which is a message broker implementing the `AMQP `_ protocol.\n\nThe connection is created using the `sockjs `_ protocol. **SockJS** is implemented in many languages, primarily in Javascript to talk to the servers in real time, which tries to create a duplex bi-directional connection between the **Client(browser)** and the **Server**. Ther server should also implement the **sockjs** protocol. Thus using the `sockjs-tornado `_ library which exposes the **sockjs** protocol in `Tornado `_ server.\n\nIt first tries to create a `Websocket `_ connection, and if it fails then it fallbacks to other transport mechanisms, such as **Ajax**, **long polling**, etc. After the connection is established, the tornado server**(sockjs-tornado)** connects to **rabbitMQ** via AMQP protocol using the **AMQP Python Client Library**, `Pika `_. \n\nThus the connection is *web-browser* to *tornado* to *rabbitMQ* and vice versa.\n\n\n\nTechnical Specs\n----------------\n\n\n:sockjs-client: Advanced Websocket Javascript Client\n:Tornado: Async Python Web Library + Web Server\n:sockjs-tornado: SockJS websocket server implementation for Tornado\n:AMQP: Advance Message Queuing Protocol used in Message Oriented Middleware\n:pika: AMQP Python Client Library\n:RabbitMQ: A Message Broker implementing AMQP\n\n\n\nFeatures\n---------\n\n* Public chat\n* Shows who joined and who left\n* Shows number of people online\n* Shows who is typing and who is not\n* Join/Leave chat room features\n\n\n\n\nInstallation\n------------\n\nPrerequisites\n~~~~~~~~~~~~~\n\n1. python 2.7+\n2. tornado\n3. sockjs-tornado\n4. sockjs-client\n5. pika\n6. rabbitMQ\n\n\nInstall\n~~~~~~~\n::\n\n $ pip install rabbitChat\n\nIf above dependencies do not get installed by the above command, then use the below steps to install them one by one.\n\n **Step 1 - Install pip**\n\n Follow the below methods for installing pip. One of them may help you to install pip in your system.\n\n * **Method 1 -** https://pip.pypa.io/en/stable/installing/\n\n * **Method 2 -** http://ask.xmodulo.com/install-pip-linux.html\n\n * **Method 3 -** If you installed python on MAC OS X via ``brew install python``, then **pip** is already installed along with python.\n\n\n **Step 2 - Install tornado**\n ::\n\n $ pip install tornado\n\n **Step 3 - Install sockjs-tornado**\n ::\n\n $ pip install sockjs-tornado\n\n\n **Step 4 - Install pika**\n ::\n\n $ pip install pika\n\n **Step 5 - Install RabbitMQ**\n \n * *For* ``Mac`` *Users*\n \n 1. Brew Install RabbitMQ\n ::\n\n $ brew install rabbitmq\n\n 2. Configure RabbitMq, follow this `link `_, this `one `_ and `this `_.\n\n * *For* ``Ubuntu/Linux`` *Users*\n\n 1. Enable RabbitMQ application repository\n ::\n \n $ echo \"deb http://www.rabbitmq.com/debian/ testing main\" >> /etc/apt/sources.list\n\n 2. Add the verification key for the package\n ::\n\n $ wget -o http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | sudo apt-key add -\n\n 3. Update the sources with our new addition from above\n :: \n\n $ apt-get update\n\n \n 4. And finally, download and install RabbitMQ\n ::\n\n $ sudo apt-get install rabbitmq-server\n\n \n\n 5. Configure RabbitMQ, follow this `link `_, this `one `_ and `this `_. \n\n\n\nUsage\n-----\n\nAfter having installed rabbitChat, just the run the following commands to use it:\n\n* **RabbitMQ Server**\n \n 1. *For* ``Mac`` *Users*\n ::\n \n # start normally\n $ rabbitmq-server\n \n # If you want to run in background\n $ rabbitmq-server --detached \n\n # start using brew rervices (doesn't work with tmux)\n $ brew services rabbitmq start\n\n\n 2. *For* ``Ubuntu/LInux`` *Users*\n ::\n\n # start normally\n $ rabbitmq-server\n\n # If you want to run in background\n $ rabbitmq-server --detached\n\n # To start using service\n $ service rabbitmq-server start\n\n # To stop using service\n $ service rabbitmq-server stop\n \n # To restart using service\n $ service rabbitmq-server restart\n \n # To check the status\n $ service rabbitmq-server status\n\n\n\n* **Start rabbitChat Server**\n ::\n\n $ rabbitChat [options]\n\n - **Options**\n\n :--port: Port number where the chat server will start\n\n\n - **Example**\n ::\n\n $ rabbitChat --port=9191\n\n \n* **Stop rabbitChat Server**\n\n\n\n Click ``Ctrl+C`` to stop the server.\n\n\n\nTodo\n-----\n\n1. Add Private Chat functionality.\n \n2. Manage Presence Management, sent, delivered acknowledgements.\n\n3. Message Persistence and delivery of messages to offline clinets.\n\n4. Add Blog post regarding this topic.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/anirbanroydas/rabbitChat", "keywords": "chat server amqp protocol rabbitmq message broker via sockjs websocket tornado with sockjs-tornado and amqp python client library Pika", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rabbitChat", "package_url": "https://pypi.org/project/rabbitChat/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rabbitChat/", "project_urls": { "Homepage": "https://github.com/anirbanroydas/rabbitChat" }, "release_url": "https://pypi.org/project/rabbitChat/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "A Chat Server based on AMQP using RabbitMQ message broker implementing AMQP, websocket, sockjs, sockjs-tornado, tornado, and amqp python client library, Pika", "version": "1.0.0" }, "last_serial": 2122692, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ad015fefd877624e3ede6146af58834b", "sha256": "c05cfe775f9998da2c332fb04d56b3c1d2805caabb5297c7606774c2b43d9da9" }, "downloads": -1, "filename": "rabbitChat-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ad015fefd877624e3ede6146af58834b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 35519, "upload_time": "2016-05-18T23:18:46", "url": "https://files.pythonhosted.org/packages/2f/62/ba89bbfcc0006b4e605f12365b0ae3b7d4541e000cbb34b4b6dad0fffadc/rabbitChat-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "999d920fb03d9d4b8c5e0ac80d47b626", "sha256": "47d969ff536f1fb752c7ec0e7edaf445452a7f75eed7f28cabecb6de540886ed" }, "downloads": -1, "filename": "rabbitChat-1.0.0.tar.gz", "has_sig": false, "md5_digest": "999d920fb03d9d4b8c5e0ac80d47b626", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1197905, "upload_time": "2016-05-18T23:17:28", "url": "https://files.pythonhosted.org/packages/d2/e1/14334ae23d1716227615ad68c85010236aaf5dfb2ac524cf1621a5c89d95/rabbitChat-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad015fefd877624e3ede6146af58834b", "sha256": "c05cfe775f9998da2c332fb04d56b3c1d2805caabb5297c7606774c2b43d9da9" }, "downloads": -1, "filename": "rabbitChat-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ad015fefd877624e3ede6146af58834b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 35519, "upload_time": "2016-05-18T23:18:46", "url": "https://files.pythonhosted.org/packages/2f/62/ba89bbfcc0006b4e605f12365b0ae3b7d4541e000cbb34b4b6dad0fffadc/rabbitChat-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "999d920fb03d9d4b8c5e0ac80d47b626", "sha256": "47d969ff536f1fb752c7ec0e7edaf445452a7f75eed7f28cabecb6de540886ed" }, "downloads": -1, "filename": "rabbitChat-1.0.0.tar.gz", "has_sig": false, "md5_digest": "999d920fb03d9d4b8c5e0ac80d47b626", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1197905, "upload_time": "2016-05-18T23:17:28", "url": "https://files.pythonhosted.org/packages/d2/e1/14334ae23d1716227615ad68c85010236aaf5dfb2ac524cf1621a5c89d95/rabbitChat-1.0.0.tar.gz" } ] }