WebSockets  в  Twisted Кириллов Сергей Конференция  PyKyiv 30  января 2010 г. Киев
Сначала был  HTTP 1990
Ajax 1999
Comet 2004
WebSockets 2010
WebSockets —  стандартный протокол для асинхронного взаимодействия с браузером
Пример  WebSocket URL ws://127.0.0.1:5555/path wss://127.0.0.1:5555/path  ( TLS)
WebSockets Handshake Запрос GET /demo HTTP/1.1 Upgrade: WebSocket Connection: Upgrade Host: example.com Origin: http://example.com WebSocket-Protocol: sample  Ответ HTTP/1.1 101 Web Socket Protocol Handshake Upgrade: WebSocket Connection: Upgrade WebSocket-Origin: http://example.com WebSocket-Location: ws://example.com/demo WebSocket-Protocol: sample
Поддержка браузерами Google Chrome Последние билды  Safari Mozilla Firefox ( запланирован на релиз  3.7)
Мало? Firefox 3.5, IE6, IE7, IE8
web-socket-js http://github.com/gimite/web-socket-js
Ок, круто. Как это всё прикрутить к  Python?
Twisted!
Twisted Официальная поддержка в разработке http://bitbucket.org/rushman/tx-websockets/
Chat Server (41  строка)
HTML -страница клиент (51 строка) var myWebSocket = new WebSocket(&quot;ws://192.168.1.100:8007/&quot;);  myWebSocket.onopen = function(evt) {   $('#status').removeClass('disconnected').addClass('connected').text('WebSocket is connected :)');  };   myWebSocket.onmessage = function(evt) { $('<li/>').text(evt.data).appendTo('#log'); $(&quot;body&quot;).stop(true, false).animate({ scrollTop: $(document).height() }, &quot;slow&quot;);   };   myWebSocket.onclose = function(evt) {  $('#status').removeClass('connected').addClass('disconnected').text('WebSocket is disconnected :(');  };   $('#form').submit(function(evt) { evt.preventDefault();   myWebSocket.send($('#data').val()); $('#data').val(''); });
Демо! http://bit.ly/wschat
Всем спасибо   … а ещё мы ищем  « головастиков »

WebSockets в Twisted