В моем постоянном любопытстве о веб-сайтах я заметил тенденцию:
"мир привет" юниверса websocket, по крайней мере на данный момент, кажется "эхо" функциональностью. То есть, продемонстрированное приложение, как правило, "я что-то посылаю, я что-то получаю".
В то же время, демонстрируя, что протокол является функциональным, этот пример демонстрирует только тот же тип связи, что и традиционный цикл запроса/ответа.
Например, единственная демонстрация (на стороне сервера), которую я могу найти в twisted.web.websockets, следующая:
import sys
from twisted.python import log
from twisted.internet import reactor
from twisted.web.static import File
from twisted.web.websocket import WebSocketHandler, WebSocketSite
class Echohandler(WebSocketHandler):
def frameReceived(self, frame):
log.msg("Received frame '%s'" % frame)
self.transport.write(frame + "\n")
def main():
log.startLogging(sys.stdout)
root = File(".")
site = WebSocketSite(root)
site.addHandler("/ws/echo", Echohandler)
reactor.listenTCP(8080, site)
reactor.run()
if __name__ == "__main__":
main()
Как я могу вместо этого изучить возможность "push"? т.е. как я могу оставить веб-сокет открытым, а затем позже, в определенное время, определяемым появлением какого-либо события, отправить сообщение через websocket, на содержание которого также влияет это событие?
(Те, кого интересует этот вопрос, могут также считать неотложным этот вопрос, который я задал несколько дней назад: Создание ходов w/websockets и python/django (/twisted?))