{ "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": "mosquittoChat\n==============\n\nAn MQTT protocol based Chat-Server/Chat-System using Mosquitto Broker, tornado as web server, sockjs in client(browser) side javascript library, sockjs-tornado as sockjs implementation on server side and paho-mqtt (mqtt python client).\n\n\nDocumentation\n--------------\n\n**Link :** http://mosquittochat.readthedocs.io/en/latest/\n\n\nProject Home Page\n--------------------\n\n**Link :** https://pypi.python.org/pypi/mosquittoChat\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\nmosquittochat is an MQTT protocol based 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 `MQTT `_ protocol to implement the real time message passing system. **MQTT** is implemented in many languages and in many softwares, one of such is `Mosquitto `_ , which is a message broker implementing the `MQTT `_ 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 **Mosquitto** via MQTT protocol using the **MQTT Python Client Library**, `paho-mqtt `_. \n\nThus the connection is *web-browser* to *tornado* to *mosquitto* and vice versa.\n\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:MQTT: Machine-to-Machine (M2M)/\"Internet of Things\" connectivity protocol\n:paho-mqtt: MQTT Python Client Library\n:Mosquitto: A Message Broker implementing MQTT in C\n\n\n\nFeatures\n---------\n\n* Public chat\n* Shows who joined and who left\n* Shows list of users online/offline \n* Show last seen of offline features\n* Shows who is typing and who is not - typing indicator\n* Shows number of people online in public chat\n* Join/Leave chat room features\n\n\n\n\n\n\nInstallation\n------------\n\nPrerequisites\n~~~~~~~~~~~~~\n\n1. python 2.7+\n2. tornado\n3. sockjs-tornado\n4. sockjs-client\n5. paho-mqtt\n6. mosquitto\n\n\nInstall\n~~~~~~~\n::\n\n $ pip install mosquittoChat\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 paho-mqtt**\n ::\n\n $ pip install paho-mqtt\n\n **Step 5 - Install Mosquitto**\n \n * *For* ``Mac`` *Users*\n \n 1. Brew Install Mosquitto\n ::\n\n $ brew install mosquitto\n\n 2. Configure mosquitto, by modifying the file at ``/usr/local/etc/mosquitto/mosquitto.conf``.\n\n * *For* ``Ubuntu/Linux`` *Users*\n\n 1. Enable mosquitto repository (optional)\n\n First Try directly, if it doesn't work, then follow this step and continue after this.::\n\n $ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa\n\n \n\n 2. Update the sources with our new addition from above\n ::\n\n $ apt-get update\n\n \n 3. And finally, download and install Mosquitto\n ::\n\n $ sudo apt-get install mosquitto\n\n \n\n 4. Configure mosquitto, by modifying the file at ``/usr/local/etc/mosquitto/mosquitto.conf``.\n\n\n\n\nUsage\n-----\n\nAfter having installed mosquittoChat, just run the following commands to use it:\n\n* **Mosquitto Server**\n \n 1. *For* ``Mac`` *Users*\n ::\n\n # start normally\n $ mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf\n \n # If you want to run in background\n $ mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf -d \n\n # start using brew services (doesn't work with tmux, athough there is a fix, mentioned in one of the pull requests and issues)\n $ brew services start mosquitto\n\n\n 2. *For* ``Ubuntu/LInux`` *Users*\n ::\n\n # start normally\n $ mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf\n\n # If you want to run in background\n $ mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf -d \n\n # To start using service\n $ sudo service mosquitto start\n\n # To stop using service\n $ sudo service mosquitto stop\n \n # To restart using service\n $ sudo service mosquitto restart\n \n # To check the status\n $ service mosquitto status\n\n\n\n* **Start mosquittochat Applcation**\n ::\n\n $ mosquittoChat [options]\n\n - **Options**\n\n :--port: Port number where the chat server will start\n\n\n - **Example**\n ::\n\n $ mosquittoChat --port=9191\n\n \n* **Stop mosquittoChat 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/mosquittoChat", "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": "mosquittoChat", "package_url": "https://pypi.org/project/mosquittoChat/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mosquittoChat/", "project_urls": { "Homepage": "https://github.com/anirbanroydas/mosquittoChat" }, "release_url": "https://pypi.org/project/mosquittoChat/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "A Chat Server based on MQTT protocol using Mosquitto (broker a C implementation of MQTT), websocket, sockjs javascript library on client(browser) side, sockjs-tornado, tornado, and paho-mqtt (mqtt python client library)", "version": "1.0.1" }, "last_serial": 2143598, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "38695428b3ee9e0423af5ee9990bd2ef", "sha256": "0bba2b03f82fed75f8aedd08441518fab1c00e53297b630149d5ff51d8039dd5" }, "downloads": -1, "filename": "mosquittoChat-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "38695428b3ee9e0423af5ee9990bd2ef", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21970, "upload_time": "2016-05-28T02:33:56", "url": "https://files.pythonhosted.org/packages/64/b2/3de6c9f882fe79e268c83b65d8994357aa8ad4630ec4f223d89f9b80fe78/mosquittoChat-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2aaa12b26b55f93d13456a442ddd3bb", "sha256": "b134495bd5e4b4007effd6de8fab173aefc29c26ff3aefb4e61902015ef35366" }, "downloads": -1, "filename": "mosquittoChat-1.0.tar.gz", "has_sig": false, "md5_digest": "d2aaa12b26b55f93d13456a442ddd3bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 980553, "upload_time": "2016-05-28T02:32:56", "url": "https://files.pythonhosted.org/packages/cd/6f/fd59c695fa7440e6dfce602aa9f53cef45642f4517c215f10ed88e7e644b/mosquittoChat-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "51dc5931d4a30db33e3cb712a672b308", "sha256": "7d42f4ac2afd06ca3c7c49ec47762754383db6e7e7a5874f5310de8df590c0c3" }, "downloads": -1, "filename": "mosquittoChat-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "51dc5931d4a30db33e3cb712a672b308", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41439, "upload_time": "2016-05-31T22:44:10", "url": "https://files.pythonhosted.org/packages/b9/69/e868abde26b279bc6e7890480a5d1d9b933b93265d1a9a264be152947b69/mosquittoChat-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54e791f0190093076ca1fa82616a86b4", "sha256": "0d7f51c6254254a02a56f8994e11931c6e2d3d5f155ef16128fcebd16be3dd0c" }, "downloads": -1, "filename": "mosquittoChat-1.0.1.tar.gz", "has_sig": false, "md5_digest": "54e791f0190093076ca1fa82616a86b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 980612, "upload_time": "2016-05-31T22:41:55", "url": "https://files.pythonhosted.org/packages/ee/ac/a10c94fe67edc004a5d7b845c383d95cada1ce2b2c40a2ec3d67ddd83d1d/mosquittoChat-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "51dc5931d4a30db33e3cb712a672b308", "sha256": "7d42f4ac2afd06ca3c7c49ec47762754383db6e7e7a5874f5310de8df590c0c3" }, "downloads": -1, "filename": "mosquittoChat-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "51dc5931d4a30db33e3cb712a672b308", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41439, "upload_time": "2016-05-31T22:44:10", "url": "https://files.pythonhosted.org/packages/b9/69/e868abde26b279bc6e7890480a5d1d9b933b93265d1a9a264be152947b69/mosquittoChat-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54e791f0190093076ca1fa82616a86b4", "sha256": "0d7f51c6254254a02a56f8994e11931c6e2d3d5f155ef16128fcebd16be3dd0c" }, "downloads": -1, "filename": "mosquittoChat-1.0.1.tar.gz", "has_sig": false, "md5_digest": "54e791f0190093076ca1fa82616a86b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 980612, "upload_time": "2016-05-31T22:41:55", "url": "https://files.pythonhosted.org/packages/ee/ac/a10c94fe67edc004a5d7b845c383d95cada1ce2b2c40a2ec3d67ddd83d1d/mosquittoChat-1.0.1.tar.gz" } ] }