4
我的工作zeromq PUB/SUB和我setuped Django上zeromq PUB設置zeromq。我如何使用Django
這是我的代碼,我使用了設置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)
我使用數據來throgh網絡阿賈克斯/ 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做到這一點。
我想要只出版商,用戶會單獨所以一旦出版商將在稍後發佈的消息,在用戶將處理它,但在這裏我面對的問題。
誰能給我吧最佳的解決方案,這樣我可以處理來自網絡接口的所有消息,我也想將消息存儲到數據庫中,我會處理一次信息將被公佈。
感謝您的回答,那就是你的方法現在的工作 –
你介意指定的選項爲你工作? – Jason
我做到了,而真: publisher.send(「message:%s」%str(message)) #time.sleep(1) publisher.close() –