2016-01-18 3 views
2

Я разрабатываю службу обмена сообщениями, которая использует веб-узлы. И я буду использовать python/django как серверный язык. Есть варианты, такие как:Обработка websockets в python

  1. Торнадо
  2. Джанго-WebSockets-Redis
  3. Crossbar.io
  4. Колба-SocketIO

Я смущен тем, что я должен использовать для где количество активных соединений велико.

+0

Не используйте Django. В конечном итоге вы будете делать все вручную, так как у него нет поддержки для веб-узлов. – khajvah

ответ

0

Веб-узлы в торнадо относительно просты. This example показывает, как вы можете интегрировать веб-узлы с чрезвычайно простым управлением (open и on_close методов).

для восходящего трафика (браузер -> сервер) можно реализовать методы WebSocketHandler:

def on_message(self, message): 
    # call message callback 

def data_received(self, chunk): 
    # do something with chunked data 

для нисходящего трафика, есть WebSocketHandler.write_message:

def broadcast_to_all_websockets(self, message): 
    for ws in cl: 
     if not ws.ws_connection.stream.socket: 
      print "Web socket %s does not exist anymore!" % ws 
      cl.remove(ws) 
     else: 
      ws.write_message(message) 
0

Очень рекомендую использовать autobahn|Python. В настоящее время он использует его прямо сейчас для проекта WebSocket на Python, и с ним так легко работать и имеет много классов, уже построенных для вас, как WebSocketServer. Давайте также выберем вашу реализацию (выбор между asyncio и Twisted.)