Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Socket.io протокол "обжатия" через WebSocket / 7 сообщений из 7, страница 1 из 1
14.11.2014, 13:11
    #38806226
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
Добрый день всем
подскажите кто знает как происходит обжатие в 3-м протоколе Socket.io
что он за ... шлёт

какие то хитрые манипуляции

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Client1[13:42:20]:
GET /socket.io/?EIO=3&transport=polling&t=1415954540255-0 HTTP/1.1
Host: localhost:3001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:3000/
Origin: http://localhost:3000
Cookie: io=4O1-HEJ_uFhje8xeAAAC
Connection: keep-alive


Server1[13:42:20]:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 101
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:3000
Set-Cookie: io=Kne4IOITfXjj5Zz-AAAD
Date: Fri, 14 Nov 2014 08:42:20 GMT
Connection: keep-alive

#($00)#($09)#($07)#($FF)0{"sid":"Kne4IOITfXjj5Zz-AAAD","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}
Client1[13:42:20]:
GET /socket.io/?EIO=3&transport=polling&t=1415954540300-1&sid=Kne4IOITfXjj5Zz-AAAD HTTP/1.1
Host: localhost:3001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:3000/
Origin: http://localhost:3000
Cookie: io=Kne4IOITfXjj5Zz-AAAD
Connection: keep-alive


Server1[13:42:20]:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 5
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:3000
Set-Cookie: io=Kne4IOITfXjj5Zz-AAAD
Date: Fri, 14 Nov 2014 08:42:20 GMT
Connection: keep-alive

#($00)#($02)#($FF)40
Client2[13:42:20]:
GET /socket.io/?EIO=3&transport=websocket&sid=Kne4IOITfXjj5Zz-AAAD HTTP/1.1
Host: localhost:3001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Sec-WebSocket-Version: 13
Origin: http://localhost:3000
Sec-WebSocket-Key: dsdeOd/S5RRUoZJbkl15vg==
Cookie: io=Kne4IOITfXjj5Zz-AAAD
Connection: keep-alive, Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket


Server2[13:42:20]:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: 6gNDUQfAAXJvZQVIRViSnoTa5WE=


и запустился...
...
Рейтинг: 0 / 0
14.11.2014, 13:14
    #38806236
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
...
Рейтинг: 0 / 0
14.11.2014, 13:52
    #38806315
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
да вроде нет компрессии, открыто текст шлёт

это дальше с чата отправлено "TestMsg5"
Код: pascal
1.
2.
3.
4.
5.
6.
Client2[13:42:20]:
#($81)#($81)#($99)#($FF)#($B2)#($AE)#($AC)
Client2[13:42:31]:
#($81)#($9D)#($B3)#($C4)u#($F7)#($87)#($F6).#($D5)#($D0)#($AC)#($14)#($83)#($93)#($A9)#($10)#($84)#($C0)#($A5)#($12)#($92)#($91)#($E8)W#($A3)#($D6)#($B7)#($01)#($BA)#($C0)#($A3)@#($D5)#($EE)
Server2[13:42:31]:
#($81)#($1D)42["chat message","TestMsg5"]


сервер его же и вернул

что за параметр t=1415954540255-0 в запросе даётся?
и как он потом преобразуется в
t=1415954540300-1 и преобразуется ли

sid=Kne4IOITfXjj5Zz-AAAD вроде как понятно
...
Рейтинг: 0 / 0
14.11.2014, 14:03
    #38806327
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
сжатия там точно нет, оно больше к веб-сокету относится
SRV1=0

что мутит socket.io-1.2.0 непонятно
...
Рейтинг: 0 / 0
14.11.2014, 14:43
    #38806415
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
вот кстати в дебуге что сервер пишет
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
Fri, 14 Nov 2014 11:39:46 GMT engine intercepting request for path "/socket.io/"
Fri, 14 Nov 2014 11:39:46 GMT engine handling "GET" http request "/socket.io/?EIO=3&transport=polling&t=1415965186270-0"
Fri, 14 Nov 2014 11:39:46 GMT engine handshaking client "ihzK_0M3dAAbCDZtAAAA"
Fri, 14 Nov 2014 11:39:46 GMT engine:socket sending packet "open" ({"sid":"ihzK_0M3dAAbCDZtAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000})
Fri, 14 Nov 2014 11:39:46 GMT engine:polling setting request
Fri, 14 Nov 2014 11:39:46 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:39:46 GMT engine:polling writing " 	пїЅ0{"sid":"ihzK_0M3dAAbCDZtAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}"
Fri, 14 Nov 2014 11:39:46 GMT engine:socket executing batch send callback
Fri, 14 Nov 2014 11:39:46 GMT engine:socket sending packet "message" (0)
Fri, 14 Nov 2014 11:39:46 GMT engine intercepting request for path "/socket.io/"
Fri, 14 Nov 2014 11:39:46 GMT engine handling "GET" http request "/socket.io/?EIO=3&transport=polling&t=1415965186516-1&sid=ihzK_0M3dAAbCDZtAAAA"
Fri, 14 Nov 2014 11:39:46 GMT engine setting new request for existing client
Fri, 14 Nov 2014 11:39:46 GMT engine:polling setting request
Fri, 14 Nov 2014 11:39:46 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:39:46 GMT engine:polling writing " пїЅ40"
Fri, 14 Nov 2014 11:39:46 GMT engine:socket executing batch send callback
Fri, 14 Nov 2014 11:39:46 GMT engine upgrading existing transport
Fri, 14 Nov 2014 11:39:46 GMT engine:socket might upgrade socket transport from "polling" to "websocket"
Fri, 14 Nov 2014 11:39:46 GMT engine:ws received "2probe"
Fri, 14 Nov 2014 11:39:46 GMT engine:ws writing "3probe"
Fri, 14 Nov 2014 11:39:46 GMT engine intercepting request for path "/socket.io/"
Fri, 14 Nov 2014 11:39:46 GMT engine handling "GET" http request "/socket.io/?EIO=3&transport=polling&t=1415965186529-2&sid=ihzK_0M3dAAbCDZtAAAA"
Fri, 14 Nov 2014 11:39:46 GMT engine setting new request for existing client
Fri, 14 Nov 2014 11:39:46 GMT engine:polling setting request
Fri, 14 Nov 2014 11:39:46 GMT engine:socket writing a noop packet to polling for fast upgrade
Fri, 14 Nov 2014 11:39:46 GMT engine:polling writing " пїЅ6"
Fri, 14 Nov 2014 11:39:46 GMT engine:ws received "5"
Fri, 14 Nov 2014 11:39:46 GMT engine:socket got upgrade packet - upgrading
Fri, 14 Nov 2014 11:40:11 GMT engine:ws received "2"
Fri, 14 Nov 2014 11:40:11 GMT engine:socket packet
Fri, 14 Nov 2014 11:40:11 GMT engine:socket got ping
Fri, 14 Nov 2014 11:40:11 GMT engine:socket sending packet "pong" (undefined)
Fri, 14 Nov 2014 11:40:11 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:40:11 GMT engine:ws writing "3"
Fri, 14 Nov 2014 11:40:36 GMT engine:ws received "2"
Fri, 14 Nov 2014 11:40:36 GMT engine:socket packet
Fri, 14 Nov 2014 11:40:36 GMT engine:socket got ping
Fri, 14 Nov 2014 11:40:36 GMT engine:socket sending packet "pong" (undefined)
Fri, 14 Nov 2014 11:40:36 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:40:36 GMT engine:ws writing "3"
Fri, 14 Nov 2014 11:41:01 GMT engine:ws received "2"
Fri, 14 Nov 2014 11:41:01 GMT engine:socket packet
Fri, 14 Nov 2014 11:41:01 GMT engine:socket got ping
Fri, 14 Nov 2014 11:41:01 GMT engine:socket sending packet "pong" (undefined)
Fri, 14 Nov 2014 11:41:01 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:41:01 GMT engine:ws writing "3"
Fri, 14 Nov 2014 11:41:26 GMT engine:ws received "2"
Fri, 14 Nov 2014 11:41:26 GMT engine:socket packet
Fri, 14 Nov 2014 11:41:26 GMT engine:socket got ping
Fri, 14 Nov 2014 11:41:26 GMT engine:socket sending packet "pong" (undefined)
Fri, 14 Nov 2014 11:41:26 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:41:26 GMT engine:ws writing "3"
Fri, 14 Nov 2014 11:41:51 GMT engine:ws received "2"
Fri, 14 Nov 2014 11:41:51 GMT engine:socket packet
Fri, 14 Nov 2014 11:41:51 GMT engine:socket got ping
Fri, 14 Nov 2014 11:41:51 GMT engine:socket sending packet "pong" (undefined)
Fri, 14 Nov 2014 11:41:51 GMT engine:socket flushing buffer to transport
Fri, 14 Nov 2014 11:41:51 GMT engine:ws writing "3"  
...
Рейтинг: 0 / 0
14.11.2014, 20:50
    #38806865
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
похоже вот эта фигня генерирует адреса для запросов

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
/**
 * Generates uri for connection.
 *
 * @api private
 */

Polling.prototype.uri = function(){
  var query = this.query || {};
  var schema = this.secure ? 'https' : 'http';
  var port = '';

  // cache busting is forced
  if (false !== this.timestampRequests) {
    query[this.timestampParam] = +new Date + '-' + Transport.timestamps++;
  }

  if (!this.supportsBinary && !query.sid) {
    query.b64 = 1;
  }

  query = parseqs.encode(query);

  // avoid port if default for schema
  if (this.port && (('https' == schema && this.port != 443) ||
     ('http' == schema && this.port != 80))) {
    port = ':' + this.port;
  }

  // prepend ? to query
  if (query.length) {
    query = '?' + query;
  }

  return schema + '://' + this.hostname + port + this.path + query;
};
...
Рейтинг: 0 / 0
17.11.2014, 09:44
    #38807862
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket.io протокол "обжатия" через WebSocket
тьфу, загнался

транспорт же прямым текстом пишет :-)
Код: sql
1.
2.
Client2[13:42:20]:
GET /socket.io/?EIO=3&transport=websocket&sid=Kne4IOITfXjj5Zz-AAAD HTTP/1.1
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Socket.io протокол "обжатия" через WebSocket / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]