WebSockets – надеждата за realtime web

От доста години се говори за “новия уеб”, било то 2.0 или 3.0. Основното за което се споменава е ключовата дума Realtime. Доста мотивирано от twitter и едновременно, объркащо, защото на практика, уеба в момента е доста далеч от realtime. Използват се разни хакове, като Comet или дори Flash и FMS.

Преди известно време се видя светлината в тунела – WebSockets (HTML5). И някак си, съвпадение с това, че ми се наложи да пиша курсова по курс в NBU, реших да си поиграя с тях. Ето и впечатленията ми…

1. В момента се поддържа само от Google Chrome (latest version).

2. Спецификацията не е завършена, т.е. ако напишете нещо и работи днес… не значи, че ще работи утре.

3. Нещо не се знае как ще се връзва към WebSocket сървъра, при положение, че потребителя си е сложил Proxy. Самият аз не успях да го накарам да мине през такова и за това се наложи да debugвам с network sniffer (big shit).

4. Уж идеята е да работи максимално “транспарентно”, но не се лъжете по това което четете в buzz сайтовете – НЕ работи транспарентно. Има си протокол, съобщенията започват с 0×00 и завършват с 0xff. Всичко между тях трябва да е в UTF-8. Докато писах сървъра (базиран на nanoserv) имах доста голям проблем с превключването на протоколите…handshake-a става през HTTP, после изведнъж започвате някакъв нов формат, ужас е.

5. За да е още по-весело… още не е ясно как ще се обменят данни различни от текст (пр. binary).

6. Работи много бързо, но зависи от вас колко ще е realtime, защото трябва да си напишете собствен сървър и тук нещата се усложняват (от гледна точка на performance/speed).

7. Едва дали ще работи на shared hosting-и. Въпреки, че вече има прототипи с apache modules изисква background процес, така че предполагам ще ви трябва VPS/dedicated.

8. Както споменах по-горе, ако искате да debug-вате… помислете за network sniffer, няма друга опция (поне не в google chrome).

Това са няколкото неща, с които се сблъсках последната седмица. Надявам се по-скоро, да ги интегрират и в другите браузъри, защото определено ще открият нови хоризонти за нас, уеб разработчиците.

В случай, че искате да тествате приложението: http://phpchat.demos.mylo.bg/ (да се има предвид, че все някога ще спра сървъра…ако някой проявява интерес от кода, може да му го пратя).

Също ще ми е интересно, ако някой ги е ползвал, да си каже и неговото мнение/проблеми и т.н. :)

Tags: , , , , ,

  • http://www.e-kesia.com shao

    С Chrome 3.0.197.11 ми казва:

    Your browser does not support WebSocket.

    Currently supported browsers:
    – Chrome

    Сложих си 5.0.375.55 и след като натисна бутона Connect прави request до сървъва, но след това не ме логва.
    С 6.0.412.0 приложението има същото поведение.

  • http://lpetrov.mylo.bg/ Lyubomir Petrov

    Мерси за Feedback-a. Моята версия е 5.0.375.70 beta, ето линк за бета канала:
    http://www.google.com/chrome/eula.html?extra=be...

  • http://www.2all.co.il/web/sites/erezshlez טכנאי מחשבים

    blagodaria za informatziata.mnogo hubav i polezen post!

  • http://twitter.com/aganov Alex Ganov

    WebSocket определено имат голямо бъдеще в новия web. Имплементации вече има доста, и доста читави при това, някои даже близко до цялостно cross-browser решение http://github.com/LearnBoost/Socket.IO ето за това става въпрос.

    За server се ползва node.js + http://github.com/LearnBoost/Socket.IO-node Работи native във Chrome 4 за по-ниски версии и FF използва Flash Web Sockets с вградена поддръжка на Flash Policy (socket.io-node пуска още 1 сокет на порт 843 на който стои Flash Policy File Server-a)

    Относно прокси поддръжката, наистина е неприятно. Нито html5 websockets нито flash sockets поддържат проксита, та ако socket-io не успее да се свърже с тях започва да прави XHR.

  • http://lpetrov.mylo.bg/ Lyubomir Petrov

    Мдам, това за момента е най-стабилното решение за WebSockets. И аз го гледах, като писах този Proof of Concept, но пак не се знае какво ще стане до последно.
    Дано по-скоро подкарат socket-ите..ще бъде рай :)

    ПС: Сори, чак днес видях, че има коментар в disqus за одобряване….нещо е бил бъгнал.

  • http://bg-seo.net elunez

    Your browser does not support WebSocket.

    Currently supported browsers:
    - Chrome

blog comments powered by Disqus