Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Асинхронный Web - Web Sockets
Форумы портала PHP.SU » Разное » Новости веб-технологий » Асинхронный Web - Web Sockets

Страниц (1): [1]
 

1. EuGen - 25 Декабря, 2009 - 10:46:53 - перейти к сообщению
Итак, пришел час расширения протокола HTTP. Теперь он становится асинхронным. В общем-то, не совсем новость, просто более-менее широкий обзор на русском языке я только что нашел:

http://habrahabr[dot]ru/blogs/webdev/79038/
2. movEAX - 25 Декабря, 2009 - 11:36:13 - перейти к сообщению
Интересная статья. Но кое чего я так и не докурил:
Цитата:
Объект размером 160 байт закодируется 2 байтами длины:

0x80, 0x81, 0x20, <байты объекта>


0x81 = 129;
0x20 = 32;
129+32 = 161...
Что я упустил?

ps: за ссылочку спасибо!
3. EuGen - 25 Декабря, 2009 - 11:45:04 - перейти к сообщению
Цитата:

Чтобы не создавать ограничений на длину передаваемого сообщения и в тоже время не расходовать байты нерационально, разработчики использовали очень хитрый способ указания длины тела сообщения. Каждый байт в указании длины рассматривается по частям: самый старший бит указывает является ли этот байт последним (0) либо же за ним есть другие (1), а младшие 7 битов содержат собственно данные
4. movEAX - 25 Декабря, 2009 - 13:05:11 - перейти к сообщению
EuGen пишет:
Каждый байт в указании длины рассматривается по частям: самый старший бит указывает является ли этот байт последним (0) либо же за ним есть другие (1), а младшие 7 битов содержат собственно данные


Старший бит не учитываем, ок, тогда получаеться следующее:
0x81 => 1000 0001 => не учитываем старший бит =>0000 0001 =>1;
0x20 => 0010 0000 => не учитываем старший бит =>0010 0000 =>32;

32+1 = 33...

Хотя, если поразмышлять, то можно предположить, что автор ошибся в местоположении старшего бита.
т.е. все выглядит теперь так:
0x81 => 1000 0001 => не учитываем неправильный старший бит =>1000 0000 =>128;
0x20 => 0010 0000 => не учитываем неправильный старший бит =>0010 0000 =>32;

32+128 = 160...

Старший бит - крайний слева. Не так ли?
5. EuGen - 25 Декабря, 2009 - 13:19:37 - перейти к сообщению
Читайте внимательно.
0. 0x81 => 1000 0001. Отбрасываем старший бит: 000 0001
1. 0x20 => 0010 0000 . Отбрасываем старший бит: 010 0000
2. Склеиваем первое со вторым: 000000100100000 = 160
6. movEAX - 25 Декабря, 2009 - 13:28:30 - перейти к сообщению
EuGen пишет:
Читайте внимательно.
0. 0x81 => 1000 0001. Отбрасываем старший бит: 000 0001
1. 0x20 => 0010 0000 . Отбрасываем старший бит: 010 0000
2. Склеиваем первое со вторым: 000000100100000 =

Вот теперь дошло) Благодарю!
7. blinkov - 14 Апреля, 2012 - 01:23:59 - перейти к сообщению
Пишу серию статей на схожую тему, возможно пригодится: Интерактивные сайты

 

Powered by ExBB FM 1.0 RC1