基于amqp的聊天服务器,使用rabbitmq消息代理实现amqp、websocket、sockjs、sockjs tornado、tornado和amqp python客户端库,pika

rabbitChat的Python项目详细描述


rabbitchat
==


基于amqp协议的聊天服务器/聊天系统(rabbitmq消息代理)


文档
----


**链接:**http://rabbitchat.readthedocs.io/en/latest/index.html








An Roy Das
:电子邮件:anirban.nick@gmail.com
:版权所有(C):2016,anirban Roy Das<;anirban.nick@gmail.com>;


检查``rabbitchat/license``文件以获取完整的版权声明。




overview
--


rabbitchat是一个非常简单的聊天服务器,可以设置在局域网上聊天。它既支持在特定时间同时连接的所有参与者之间的**公共聊天**,也支持在这些参与者之间的**私人聊天**。

它使用"amqp<;https://www.amqp.org/>;"协议来实现实时消息传递系统。**amqp**以多种语言和软件实现,其中一种是"rabbitmq<;https://www.rabbitmq.com/>;`",它是实现"amqp<;https://www.amqp.org/>;``协议"的消息代理。

kjs/sockjs client>;``协议。**sockjs**是用多种语言实现的,主要是用javascript来实时与服务器对话,它试图在**客户端(浏览器)**和**服务器**之间创建双向连接。服务器还应该实现**sockjs**协议。因此,使用'sockjs tornado<;https://github.com/mrjoes/sockjs tornado>;``库,它在'tornado<;http://www.tornado web.org/>;``服务器中公开了**sockjs**协议。

它首先尝试创建一个'websocket<;https://en.wikipedia.org/wiki/websocket>;``连接,然后如果失败,则返回到其他传输机制,如**ajax**、**长轮询**等。建立连接后,Tornado服务器**(Sockjs Tornado)**使用**amqp python客户端库**,`pika<;https://pypi.python.org/py通过AMQP协议连接到**rabbitmq**π/pika>;`。

因此,连接是*Web浏览器*到*Tornado*到*RabbitMQ*的连接,反之亦然。





Tornado的Ket服务器实现
:amqp:面向消息中间件中使用的高级消息队列协议Ho left
*显示在线人数
*显示谁在打字,谁不在
*加入/离开聊天室功能







巨蟒2.7+
2.龙卷风
3.Sockjs龙卷风
4.sockjs客户端
5.鼠兔BR/> 6。rabbitmq


install
~灵匹普。其中一种方法可以帮助您在系统中安装pip。

**method 1-**https://pip.pypa.io/en/stable/installing/

**method 2-**http://ask.xmodulo.com/install pip linux.html

**method 3-**如果您通过"brew install python"在Mac OS X上安装了python,则**pIP**已与Python一起安装。


**第2步-安装Tornado**
::


**第3步-安装Sockjs Tornado**



$pip安装Sockjs Tornado

**第4步-安装Pika**



$pip安装pika

**第5步-为*``mac``*用户*


**安装rabbitmq。brew安装rabbitmq
::


$brew安装rabbitmq

2。配置rabbitmq,请按照以下"链接"进行操作:https://www.rabbitmq.com/install homebrew.html>;`` u1,此"链接"https://www.rabbitmq.com/install standalone mac.html>;`` u2,此"链接"https://www.rabbitmq.com/configure.html>;`` u2,`` ubuntu/linux`*用户*

**1。启用rabbitmq应用程序存储库
::


$echo"deb http://www.rabbitmq.com/debian/testing main">;>/etc/apt/sources.list


2。添加包的验证密钥
::


3。用我们在上面添加的新内容更新源代码:


$apt get update




4。最后,下载并安装rabbitmq
::


$sudo apt get install rabbitmq server




5。配置rabbitmq,按照以下"链接"进行操作:http://www.rabbitmq.com/install debian.html>;`` u1,此"链接"https://www.rabbitmq.com/configure.html>;`` u2,此"链接"https://www.digitalocean.com/community/tutorials/how to install and manage rabbitmq>;`。




用法
----


安装rabbitchat后,只需运行以下命令即可使用它:

**rabbitmq server**


1。*对于*``mac``*用户*
::

$brew services rabbitmq开始



2。*对于*``ubuntu/linux``*用户*
::


停止使用服务
$service rabbitmq server stop

重新启动使用服务
$service rabbitmq server restart

检查状态
$service rabbitmq server status




**启动rabbitchat服务器**
::


$rabbitchat[选项]

-**选项**

:--端口:聊天服务器将启动的端口号


-**示例**



$rabbitchat--端口=9191


**停止rabbitchat服务器**




添加私人聊天功能。

2.管理状态管理、发送和传递的确认。

>3。消息持久性和向脱机客户端传递消息。

4.添加有关此主题的博客文章。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript生成两点之间的固定纬度和经度   java为什么不删除并重命名文件?   求数组的和   java在漂亮面孔中使用正则表达式   SOAP(java)中的Hello World。如何修复它?   java I获取应用程序生成错误,配置为“”的资源“attr/arc_position”的值重复   云基础环境中的Java SFTP客户端应用   谷歌应用程序引擎Java查询日期不正常?   java使用cancel按钮对JOptionPane InputDialog循环进行转义   java数字格式总是返回异常   xquery Java Saxon API以“追加”模式写入文件   java Azure函数在第二个插槽中没有响应   java在构建Play应用程序后向其添加动态依赖项   json如何使用Jackson mapper for java。木卫一。可序列化类型字段?