【发布时间】:2015-07-14 17:42:24
【问题描述】:
我正在研究 zeromq PUB/SUB,我在 django 上设置了 zeromq PUB。
这是我用来设置 zeromq 的代码
from gevent_zeromq import zmq
我正在使用 gevent_zeromq 库
@api_view(['POST','GET'])
def NOTIFICATION(request):
if request.method == 'GET':
return render_to_response('notifications.html',context)
if request.method == 'POST':
message_json = json.dumps(request.data)
message_load = json.loads(message_json)
message = {message_load['msg']}
ctx = zmq.Context()
publisher = ctx.socket(zmq.PUB)
publisher.bind("tcp://*:5566")
time.sleep(1)
while True:
publisher.send_multipart("message:%s" % str(message))
time.sleep(1)
publisher.close()
ctx.term()
return Response('',status=200)
我正在使用 ajax/jquery 来获取通过网络传输的数据。
此代码正在运行,但是当我从前端发送另一条消息时,它给了我错误:
File "/home/admin/dx_man/dx_man/views.py", line 42, in NOTIFICATION
publisher.bind("tcp://*:5566")
File "socket.pyx", line 447, in zmq.core.socket.Socket.bind (zmq/core/socket.c:4312)
ZMQError: Address already in use
如何使用 ajax、django.zeromq 来做到这一点。
我只想制作发布者,订阅者将是分开的,所以一旦发布者稍后发布消息,订阅者将处理它,但这里我面临问题。
谁能给我最好的解决方案,以便我可以处理来自网络界面的所有消息,并且我还想将消息存储到数据库中,一旦消息发布,我将处理。
【问题讨论】:
标签: jquery ajax django python-2.7 zeromq