发布和订阅 类似于RSS
发布者:服务器
订阅者:Dashboad和数据处理
看下面代码:
类文件名:monitor.py: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'gaogd'
import redis
class RedisHelper:
def __init__(self):
self.__conn = redis.Redis(host='192.168.10.12', port=6379, password='wdzj2014')
self.chan_sub = 'fm250'
self.chan_pub = 'fm250'
def public(self, msg): ## 发送消息到fm250这个频道
self.__conn.publish(self.chan_pub, msg)
return True
def subscribe(self): ##订阅 (接受fm250这个频道的消息)
pub=self.__conn.pubsub()
pub.subscribe(self.chan_sub)
pub.parse_response()
return pub
|
订阅者文件名:subscriber.py 1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'gaogd'
'''
订阅
'''
import sys,os
sys.path.append(os.path.dirname(__file__))
from redis_monitor import RedisHelper
obj = RedisHelper()
redis_sub = obj.subscribe() ##订阅
while True:
msg = redis_sub.parse_response()
print(msg)
|
发布者文件名:publisher.py 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'gaogd'
'''
发布
'''
import sys,os
sys.path.append(os.path.dirname(__file__))
from redis_monitor import RedisHelper
obj = RedisHelper()
while True:
content = raw_input(u'请输入你要发布的内容:').strip()
if content == 'exit':
break
obj.public(content) ## 发送内容
|
需要注意的是,输出的结果为列表,其中的元素均是字节的类型!
|