抽空整理了下《一起看电影》的代码,感兴趣的可以参考一下,资源下载
使用思路说明
同步后端操作
前端请求后端后,对应请求如果需要在其他前端复现,或者需要在其他前端进行下一步其他操作
则可以通过封装好的函数,在对应的请求中给交换机发信息,让交换机告知其他前端进行操作
安装pika库
python 语言通过pika库和RabbitMQ进行通讯
pip install pika
封装函数便于调用
import pika
def change_data(key,userid):
# key值对应前端接收信息的key,可以自己设计传入更多参数
# 可以设计成实例的ID,前端获取记录实例ID后拼接在监听语句中,后端只对对应实例ID发出消息
# mq用户名和密码
credentials = pika.PlainCredentials('admin', 'admin123..')
# 虚拟队列需要指定参数 virtual_host,如果是默认的可以不填。如果5672映射了别的端口对应修改
connection = pika.BlockingConnection(pika.ConnectionParameters(host = '部署了RabbitMQ的服务器IP地址',port = 5672,virtual_host = '/',credentials = credentials))
channel=connection.channel()
# 声明exchange,由exchange指定消息在哪个队列传递,如不存在,则创建。durable = True 代表exchange持久化存储,False 非持久化存储
channel.exchange_declare(exchange = '创建的交换机',durable = True, exchange_type='direct')
# 这里使用凭借json字符串传递更多数据,可以在前端解析使用
message='{"msg":"data_was_change","user":' + str(userid) + '}'
# 指定 routing_key。delivery_mode = 2 声明消息在队列中持久化,delivery_mod = 1 消息非持久化
channel.basic_publish(exchange = '创建的交换机',routing_key = str(key) ,body = message, properties=pika.BasicProperties(delivery_mode = 2))
connection.close()