rabbitChat 1.0.0

Last updated:

0 purchases

rabbitChat 1.0.0 Image
rabbitChat 1.0.0 Images
Add to Cart

Description:

rabbitChat 1.0.0

rabbitChat===========A Chat-Server/Chat-System based on AMQP protocol(RabbitMQ Message Broker)Documentation--------------**Link :** http://rabbitchat.readthedocs.io/en/latest/index.htmlDetails--------:Author: Anirban Roy Das:Email: [email protected]:Copyright(C): 2016, Anirban Roy Das <[email protected]>Check ``rabbitChat/LICENSE`` file for full Copyright notice.Overview---------rabbitChat 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.It uses the `AMQP <https://www.amqp.org/>`_ protocol to implement the real time message passing system. **AMQP** is implemented in many languages and in many softwares, once of such is `RabbitMQ <https://www.rabbitmq.com/>`_ , which is a message broker implementing the `AMQP <https://www.amqp.org/>`_ protocol.The connection is created using the `sockjs <https://github.com/sockjs/sockjs-client>`_ 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 <https://github.com/MrJoes/sockjs-tornado>`_ library which exposes the **sockjs** protocol in `Tornado <http://www.tornadoweb.org/>`_ server.It first tries to create a `Websocket <https://en.wikipedia.org/wiki/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 <https://pypi.python.org/pypi/pika>`_. Thus the connection is *web-browser* to *tornado* to *rabbitMQ* and vice versa.Technical Specs----------------:sockjs-client: Advanced Websocket Javascript Client:Tornado: Async Python Web Library + Web Server:sockjs-tornado: SockJS websocket server implementation for Tornado:AMQP: Advance Message Queuing Protocol used in Message Oriented Middleware:pika: AMQP Python Client Library:RabbitMQ: A Message Broker implementing AMQPFeatures---------* Public chat* Shows who joined and who left* Shows number of people online* Shows who is typing and who is not* Join/Leave chat room featuresInstallation------------Prerequisites~~~~~~~~~~~~~1. python 2.7+2. tornado3. sockjs-tornado4. sockjs-client5. pika6. rabbitMQInstall~~~~~~~:: pipinstallrabbitChatIfabovedependenciesdonotgetinstalledbytheabovecommand,thenusethebelowstepstoinstallthemonebyone.∗∗Step1−Installpip∗∗Followthebelowmethodsforinstallingpip.Oneofthemmayhelpyoutoinstallpipinyoursystem.∗∗∗Method1−∗∗https://pip.pypa.io/en/stable/installing/∗∗∗Method2−∗∗http://ask.xmodulo.com/install−pip−linux.html∗∗∗Method3−∗∗IfyouinstalledpythononMACOSXvia‘‘brewinstallpython‘‘,then∗∗pip∗∗isalreadyinstalledalongwithpython.∗∗Step2−Installtornado∗∗:: pip install tornado **Step 3 - Install sockjs-tornado** :: pipinstallsockjs−tornado∗∗Step4−Installpika∗∗:: pip install pika **Step 5 - Install RabbitMQ** * *For* ``Mac`` *Users* 1. Brew Install RabbitMQ :: brewinstallrabbitmq2.ConfigureRabbitMq,followthis‘link<https://www.rabbitmq.com/install−homebrew.html>‘,this‘one<https://www.rabbitmq.com/install−standalone−mac.html>‘and‘this<https://www.rabbitmq.com/configure.html>‘.∗∗For∗‘‘Ubuntu/Linux‘‘∗Users∗1.EnableRabbitMQapplicationrepository:: echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list 2. Add the verification key for the package :: wget−ohttp://www.rabbitmq.com/rabbitmq−signing−key−public.asc|sudoapt−keyadd−3.Updatethesourceswithournewadditionfromabove:: apt-get update 4. And finally, download and install RabbitMQ :: You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode rabbitmq-server # If you want to run in background You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode brew services rabbitmq start 2. *For* ``Ubuntu/LInux`` *Users* :: # start normally You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode rabbitmq-server --detached # To start using service You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode service rabbitmq-server stop # To restart using service You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode service rabbitmq-server status* **Start rabbitChat Server** :: rabbitChat[options]−∗∗Options∗∗:−−port:Portnumberwherethechatserverwillstart−∗∗Example∗∗:: rabbitChat --port=9191 * **Stop rabbitChat 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 clinets.4. Add Blog post regarding this topic.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.