From 72541725451a4153090cf55f98f2bd1e7f298a9a Mon Sep 17 00:00:00 2001 From: Roy Hyunjin Han Date: Mon, 17 Nov 2014 18:43:25 -0500 Subject: [PATCH] Save experiments --- experiments/app.js | 16 ++++++++++ experiments/client0.py | 16 ++++++++++ experiments/client1.py | 52 +++++++++++++++++++++++++++++++++ experiments/index.html | 8 +++++ experiments/interpretation.log | Bin 0 -> 3414 bytes experiments/proxy.js | 29 ++++++++++++++++++ experiments/proxy.log | Bin 0 -> 4311 bytes 7 files changed, 121 insertions(+) create mode 100644 experiments/app.js create mode 100644 experiments/client0.py create mode 100644 experiments/client1.py create mode 100644 experiments/index.html create mode 100644 experiments/interpretation.log create mode 100644 experiments/proxy.js create mode 100644 experiments/proxy.log diff --git a/experiments/app.js b/experiments/app.js new file mode 100644 index 0000000..8beb129 --- /dev/null +++ b/experiments/app.js @@ -0,0 +1,16 @@ +var app = require('express')(); +var server = require('http').Server(app); +var io = require('socket.io')(server); + +server.listen(9000); + +app.get('/', function (req, res) { + res.sendFile(__dirname + '/index.html'); +}); + +io.on('connection', function (socket) { + socket.emit('news', { hello: 'world' }); + socket.on('my other event', function (data) { + console.log(data); + }); +}); diff --git a/experiments/client0.py b/experiments/client0.py new file mode 100644 index 0000000..fe849a5 --- /dev/null +++ b/experiments/client0.py @@ -0,0 +1,16 @@ +class SocketIO(object): + + def __init__(self, host, port): + pass + + def on(self, event, callback): + pass + + +def on_news(self, data): + print(data) + self.emit('my other event', {'my': 'data'}) + + +s = SocketIO('localhost', 9000) +s.on('news', on_news) diff --git a/experiments/client1.py b/experiments/client1.py new file mode 100644 index 0000000..c2c6290 --- /dev/null +++ b/experiments/client1.py @@ -0,0 +1,52 @@ +import requests + + +def get_packets(content): + packets = [] + index = 0 + content_length = len(content) + while index < content_length: + index, packet_length = read_packet_length(content, index) + index, packet = read_packet(content, index, packet_length) + packets.append((packet[0], packet[1:])) + return packets + + +def read_packet_length(content, index): + while ord(content[index]) != 0: + index += 1 + index += 1 + packet_length_string = '' + while ord(content[index]) != 255: + packet_length_string += str(ord(content[index])) + index += 1 + return index, int(packet_length_string) + + +def read_packet(content, index, packet_length): + while ord(content[index]) == 255: + index += 1 + packet = content[index:index + packet_length] + return index + packet_length, packet + + +base_url = 'http://localhost:9000' +session = requests.Session() +# Establish engine.io connection +response = session.get( + base_url + '/socket.io/?EIO=3&transport=polling&t=1416156610842-0') +packets = get_packets(response.content) +for packet_type, packet in packets: + print packet_type, packet +packet_type, packet = packets[0] +import json +packet_json = json.loads(packet) +print packet_json +print packet_json['pingInterval'] +print packet_json['pingTimeout'] +print packet_json['sid'] +# Establish socket.io connection +# Receive socket.io event +# Send socket.io event +# Send socket.io ping +# Receive socket.io pong diff --git a/experiments/index.html b/experiments/index.html new file mode 100644 index 0000000..90f066c --- /dev/null +++ b/experiments/index.html @@ -0,0 +1,8 @@ + + diff --git a/experiments/interpretation.log b/experiments/interpretation.log new file mode 100644 index 0000000000000000000000000000000000000000..2afb8e24769945acbdaacf98e77d1814320474d3 GIT binary patch literal 3414 zcmd5;+fExX5alKT`3lPq2qXgb-m-}lRa8wSUYeFmFN*T8>{`i+&3f52K@sB9s(w;` zp=0j`Ok<@=Qc543XvW_0`1qU|_s%+>E<5KJeRN##@S2IEm><9CoOavxp2&l=$apT= z8BdZp9qfrVb*M*O&!fb5tU9T&bP%TuK0;Z}1rK?G#w;&lo}xCgwdu!T;IG2zv+;-( zA{b>b`)mv2nvmb7g5|K5)Ou%~^N-yR=bfXs-FM&mXl-}<=a28?9v5+hTe$l*Ity-S zc=@Gp$M(hNlarJ8_z>S_gFJ{>fm=O%$F9nwIzKrqbSp(JbdJX>Y@5l(sExNDqEJ*R}1^>qsww;rOM)m5zHD z)Y2gwGDtZ`fKx6|I1KV2oT8vzLm+PvCEyW52+?e45LOXb8a?~I%;oX^QC7wflZ-(G zg7!n6rYsZ(wV5@L=Sw3kuXtIGdTyQW0TbFL9%#V41bIDI+dw=L{E56&gR@|T5=|Td z;>KiWh`s?ta>&}oj{LWJIAwPQKD@_6mLwdgf5-DA!VmqDQ%0(8z-CrCuc$ghO+{D- zR=L$OGgmbUc#^wX+=jGwU{u`pr9HDxQ+oA%sLIy@uS?1VsS;NYJWZ+ryOb!b*#Kru z%;>7pgoE~>U=_iD88l(g%~PD^^7a2k!WP;-~5p8Z&!W>Ny7elDr3SBAD(FF7v1tOR)&rKkE)gzQVx1>l)HO%QGx{OpO(N(16 z`FBKQJO2SG|A6i9MU!7^)sO?6l+voa$O?2VJw&HP$VVfP1o+|8m5A=w?N=kZUOr4j zw-+M%(lFSr@A-A-RbWtiYlJny;4B2g^jR|1`#Q+I>XOE0yDrI9l5I}2t;D)w!!UHn v#Tp#+0{Ij^kazw3eJzh!6{Qu9X#*IpA$aD-^!~aeO%o literal 0 HcmV?d00001 diff --git a/experiments/proxy.js b/experiments/proxy.js new file mode 100644 index 0000000..4dec919 --- /dev/null +++ b/experiments/proxy.js @@ -0,0 +1,29 @@ +var proxy = require('http-proxy').createProxyServer({ + target: {host: 'localhost', port: 9000} +}); +var server = require('http').createServer(function(req, res) { + console.log('[REQUEST] ' + req.url); + if (req.method == 'POST') { + var body = ''; + req.on('data', function (data) { + body += data; + }); + req.on('end', function () { + print_body('[REQUEST.BODY] ', body); + }); + } + var _write = res.write; + res.write = function(data) { + print_body('[RESPONSE.BODY] ', data); + _write.call(res, data); + } + proxy.web(req, res); +}); +function print_body(header, body) { + var text = String(body); + console.log(header + text); + for (var i = 0; i < text.length; i++) { + console.log('body[%s] = %s = %s', i, text[i], text.charCodeAt(i)); + } +} +server.listen(8000); diff --git a/experiments/proxy.log b/experiments/proxy.log new file mode 100644 index 0000000000000000000000000000000000000000..45d08726609b2eb8b35e47b7493851c07f711015 GIT binary patch literal 4311 zcmcJS-EP}B5QWpUK!2XX&_%A|M3h8|GGHvSXbR+Jy_=u53&R&qEF|7ImTM~sf*_B! z=p*$NmOL|RIhE5E2=+p4G#HT|59e^`;o<&YC;Laoqt5P|;kUn6)!AiP?@X)RuYc|Q zvs$0=+y23zpKjI5@qD$YmUVwo&1Td2`BvRmnKDWnqhgyS-PnJB^ylD@qy3%V2XFr# zbv9nV{POwV_&!=qCs8jNe4HGPKdG~m4=a6>9>3q)+j|#nN7sw<<#%1#IO)S)(GT&-`ai1k@)kVtK6zs6Y4!51oKoNR$9uyClt%CBVLM5v6z~ z39wV2qzF3!_OTzE)lY!^-bW1QfO^kG3=^fG77}>|{5<{^{SzGT6=pkqZ z^swAApby4;O3zE;i2qT=?4nd=3CE9|Ll+#RlXDE-PmO z1915rz{Oe&$i<3HyIOLv3j^hV4+|&<`^FOYx$mcmZ_d73b5S0C}ig(NerH!1jQmt$CnoIFABv=n(4X;c@y{KNmGi4PBUB zfms~73fSU2rIsH0hFW^)E$ZmvK9c}E{47BcU-Wn6gzn5=2HpxdooSOh0^9;iVYNdO0E$HsDjN!g+6K< zQ4C}oF(JT3Ws_}0BPHL6Eb@)8E*VFV(q%Z*g?tm5l58VQ3Bko@P+YVmx(o|JAM;J< zEwW8GHn~Rn0j>#e4rCg!I5Le$YH^ciq>Ui?Hyeo`jn!pv{L4DTe+IoEN~uWfbDyixcU&03Sf1MJDxPj5duTmA{7^G~nu QNB^Jq$Vq8cS3fT0f8?ro>i_@% literal 0 HcmV?d00001