Message from discussion
[ANN] Multiple simultaneous clients for a single remote web inspector server
Received: by 10.52.88.201 with SMTP id bi9mr27922886vdb.6.1336548497655;
Wed, 09 May 2012 00:28:17 -0700 (PDT)
X-BeenThere: google-chrome-developer-tools@googlegroups.com
Received: by 10.220.239.67 with SMTP id kv3ls1056142vcb.9.gmail; Wed, 09 May
2012 00:28:16 -0700 (PDT)
Received: by 10.52.35.112 with SMTP id g16mr16353374vdj.4.1336548496739;
Wed, 09 May 2012 00:28:16 -0700 (PDT)
Received: by 10.52.35.112 with SMTP id g16mr16353373vdj.4.1336548496724;
Wed, 09 May 2012 00:28:16 -0700 (PDT)
Return-Path: <paulir...@google.com>
Received: from mail-vb0-f54.google.com (mail-vb0-f54.google.com [209.85.212.54])
by gmr-mx.google.com with ESMTPS id jy3si860716vdb.1.2012.05.09.00.28.16
(version=TLSv1/SSLv3 cipher=OTHER);
Wed, 09 May 2012 00:28:16 -0700 (PDT)
Received-SPF: pass (google.com: domain of paulir...@google.com designates 209.85.212.54 as permitted sender) client-ip=209.85.212.54;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of paulir...@google.com designates 209.85.212.54 as permitted sender) smtp.mail=paulir...@google.com; dkim=pass header...@google.com
Received: by vbmv11 with SMTP id v11so966918vbm.27
for <google-chrome-developer-tools@googlegroups.com>; Wed, 09 May 2012 00:28:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=google.com; s=20120113;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type:x-system-of-record;
bh=RAOn8nX6lxwt/St0kbs9NFZN2oN5rTSPN+GvXo1N650=;
b=Wykv4VnMq15dt+F3JtHJc7gQdrsi+DoKzqdjYzCTMxh/C/uepFDgZ0LRr7R37GTApZ
Pq8H3llj8euEtaX6Vbb3M3wuodnT5Bdsw8X4Y4viB3xQBb34LE1GKxcuQFRs7D3H989R
lfa9EfrpTHtaHdYYLhlqo8NboL/S3bs8jRif7UbsOr0AxnAVb7CilQrQOPoXKoKNUN9s
qfViNhZV8dNf4Tda+HagXFAukik5Y4ti6fHspgMcwDtc7Cs/60PQxpD9JrrFWHBZ+zcK
5EOhWNAK+dlwrstQ7fZaqukuK8tJEsODmUSPcRf+uvDnVoHNSUqnvDJlpYTYID3AEnNH
jY6w==
d=google.com; s=20120113;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type:x-system-of-record:x-gm-message-state;
bh=RAOn8nX6lxwt/St0kbs9NFZN2oN5rTSPN+GvXo1N650=;
b=TnPaiMB+a5dbXzc8ceLlAb+K9BUM3O0gOoQzmntxExXLa1rPo8zVRYcP1+3EurSkBC
ZI4iYh53HMfLd/VDJPArHQFpFyELkxP7oOadyYi3i+UHc5CqNn7WWnExzwbpINV5/EbI
PcMvTkH0MFfCm7MGKj/wK7OaQ5d8657GeAkRAzMM1HCDbLrBCeUzlD0rBW21Ofehyhw3
oH6hZ+OE1RdyElabsiUcgmRX58mRE1qFJlok5fxA28WFJqj42rQ7vvuNCsZvyu748vgx
kWyDFkeQ0nt3qwnSuDfQFdhqNlgpZTuHnbq0/HDld0CPKm89blBlGNkaRUyTbm7Y7sAj
/+Tw==
Received: by 10.52.67.208 with SMTP id p16mr2571736vdt.93.1336548496594;
Wed, 09 May 2012 00:28:16 -0700 (PDT)
Received: by 10.52.67.208 with SMTP id p16mr2571727vdt.93.1336548496429; Wed,
09 May 2012 00:28:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.23.242 with HTTP; Wed, 9 May 2012 00:27:46 -0700 (PDT)
In-Reply-To: <25192996.2385.1336547416629.JavaMail.geo-discussion-forums@pbbpz9>
References: <25192996.2385.1336547416629.JavaMail.geo-discussion-forums@pbbpz9>
From: Paul Irish <paulir...@google.com>
Date: Wed, 9 May 2012 00:27:46 -0700
Message-ID: <CAK-PPf2QTDkuGSsG0skrdSFfKAdikgOSzfKha9EhnDx1PQE...@mail.gmail.com>
Subject: Re: [Chrome DevTools] [ANN] Multiple simultaneous clients for a
single remote web inspector server
To: Thomas Aylott <tho...@subtlegradient.com>
Cc: google-chrome-developer-tools@googlegroups.com
Content-Type: multipart/alternative; boundary=20cf30780a6a5ad2b004bf9572d2
X-System-Of-Record: true
X-Gm-Message-State: ALoCoQlPJRi3IFEGBH1rAAlckCiIxHr4Jm9hvpHHFTUVUrA0XTlQCqeR9csVIlGKBrXoNy4WEWd/ybFaNHxgWtSOcQrxAdjodoKEGFfiJvAbrbAzAhfFmvr4zGqLygEBzElWnNhRppL1YhU/sxInL+0BEX+/RfgcUUFrukjAOP36Z+jMc+idOJk=
--20cf30780a6a5ad2b004bf9572d2
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Very cool. Thanks for sharing this nice work. :)
On Wed, May 9, 2012 at 12:10 AM, Thomas Aylott <tho...@subtlegradient.com>w=
rote:
> Multiplexing WebSocket Proxy allows you to use multiple remote web
> inspector clients with the same browser tab at the same time.
>
> https://github.com/subtleGradient/node-ws-multi-proxy
>
> # install the proxy server
> npm install ws-multi-proxy
>
> # launch the basic proxy server
> node ./node_modules/ws-multi-proxy/index.js 9023 &
>
> # launch a browser with remote webkit inspector server enabled
> open -a "Google Chrome Canary" --args --remote-debugging-port=3D9222
> --user-data-dir=3D"$TMPDIR/.chrome-user-data" about:blank
>
> # find available debugger sockets
> curl -s "http://localhost:9222/json"|grep webSocketDebuggerUrl|cut -d'"'
> -f4
>
> # inspector client 1
> open -a "Google Chrome Canary" "
> http://trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front=
-end/inspector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/=
page/4_1
> "
>
> # inspector client 2
> open -a "Google Chrome Canary" "
> http://trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front=
-end/inspector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/=
page/4_1
> "
>
> # inspector client 3
> open -a "Google Chrome Canary" "
> http://trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front=
-end/inspector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/=
page/4_1
> "
>
>
> etc=85
>
> The Elements panel only really seems to work completely with one client a=
t
> a time. Everything else seems to work just fine.
>
> I plan to create multiple tools that use the web inspector socket API.
> This proxy thing will make it possible to use multiple tools at once.
>
> Enjoy.
>
--20cf30780a6a5ad2b004bf9572d2
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Very cool. Thanks for sharing this nice work. :)<br><br><div class=3D"gmail=
_quote">On Wed, May 9, 2012 at 12:10 AM, Thomas Aylott <span dir=3D"ltr">&l=
t;<a href=3D"mailto:tho...@subtlegradient.com" target=3D"_blank">thomas@sub=
tlegradient.com</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div style=3D"margin-top:0px;margin-right:0p=
x;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;paddi=
ng-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;=
border-bottom-width:0px;border-left-width:0px;border-style:initial;border-c=
olor:initial;vertical-align:baseline">
Multiplexing WebSocket Proxy allows you to use multiple remote web inspecto=
r clients with the same browser tab at the same time.<br></div><div style=
=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;paddi=
ng-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top=
-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width=
:0px;border-style:initial;border-color:initial;vertical-align:baseline">
<br></div><div><a href=3D"https://github.com/subtleGradient/node-ws-multi-p=
roxy" target=3D"_blank">https://github.com/subtleGradient/node-ws-multi-pro=
xy</a><br></div><div><br></div><blockquote style=3D"margin:0 0 0 40px;borde=
r:none;padding:0px">
<div><font face=3D"'courier new', monospace" size=3D"1"># install t=
he proxy server</font></div><div><font face=3D"'courier new', monos=
pace" size=3D"1">npm install=A0ws-multi-proxy</font></div><div style=3D"mar=
gin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:=
0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:=
0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;bo=
rder-style:initial;border-color:initial;vertical-align:baseline">
<font face=3D"'courier new', monospace" size=3D"1"><br></font></div=
><div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-lef=
t:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px=
;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border=
-left-width:0px;border-style:initial;border-color:initial;vertical-align:ba=
seline">
<font face=3D"'courier new', monospace" size=3D"1"># launch the bas=
ic proxy server</font></div><div><font face=3D"'courier new', monos=
pace" size=3D"1">node ./node_modules/ws-multi-proxy/index.js 9023 &</fo=
nt></div>
<div><font face=3D"'courier new', monospace" size=3D"1"><br></font>=
</div><div><font face=3D"'courier new', monospace" size=3D"1"># lau=
nch a browser with remote webkit inspector server enabled</font></div><div>=
<font face=3D"'courier new', monospace" size=3D"1">open -a "Go=
ogle Chrome Canary" --args --remote-debugging-port=3D9222 --user-data-=
dir=3D"$TMPDIR/.chrome-user-data" about:blank</font></div>
<div><font face=3D"'courier new', monospace" size=3D"1"><br></font>=
</div><div><font face=3D"'courier new', monospace" size=3D"1"># fin=
d available debugger sockets</font></div><div><font face=3D"'courier ne=
w', monospace" size=3D"1">curl -s "<a href=3D"http://localhost:922=
2/json" target=3D"_blank">http://localhost:9222/json</a>"|grep webSock=
etDebuggerUrl|cut -d'"' -f4</font></div>
<div><font face=3D"'courier new', monospace" size=3D"1"><br></font>=
</div><div><font face=3D"'courier new', monospace" size=3D"1"># ins=
pector client 1</font></div><div><div style=3D"margin-top:0px;margin-right:=
0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;pad=
ding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0p=
x;border-bottom-width:0px;border-left-width:0px;border-style:initial;border=
-color:initial;vertical-align:baseline">
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;=
border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-=
left-width:0px;border-style:initial;border-color:initial;vertical-align:bas=
eline;border-style:initial;border-color:initial">
<font face=3D"'courier new', monospace" size=3D"1">open -a "Go=
ogle Chrome Canary"=A0"<a href=3D"http://trac.webkit.org/export/1=
16497/trunk/Source/WebCore/inspector/front-end/inspector.html?ws=3Dlocalhos=
t:9023/proxy/ws://localhost:9222/devtools/page/4_1" target=3D"_blank">http:=
//trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front-end/in=
spector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/page/4_=
1</a>"</font></div>
</div></div><div><div style=3D"margin-top:0px;margin-right:0px;margin-botto=
m:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;=
padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-=
width:0px;border-left-width:0px;border-style:initial;border-color:initial;v=
ertical-align:baseline">
<div><font face=3D"'courier new', monospace" size=3D"1"><br></font>=
</div></div></div><div><div style=3D"margin-top:0px;margin-right:0px;margin=
-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-botto=
m:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-b=
ottom-width:0px;border-left-width:0px;border-style:initial;border-color:ini=
tial;vertical-align:baseline">
<font face=3D"'courier new', monospace" size=3D"1"># inspector clie=
nt 2</font></div></div><div><div style=3D"margin-top:0px;margin-right:0px;m=
argin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-=
bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;bor=
der-bottom-width:0px;border-left-width:0px;border-style:initial;border-colo=
r:initial;vertical-align:baseline">
<font face=3D"'courier new', monospace" size=3D"1">open -a "Go=
ogle Chrome Canary"=A0"<a href=3D"http://trac.webkit.org/export/1=
16497/trunk/Source/WebCore/inspector/front-end/inspector.html?ws=3Dlocalhos=
t:9023/proxy/ws://localhost:9222/devtools/page/4_1" target=3D"_blank">http:=
//trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front-end/in=
spector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/page/4_=
1</a>"</font></div>
</div><div><font face=3D"'courier new', monospace" size=3D"1"><br><=
/font></div><div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px=
;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;paddi=
ng-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width=
:0px;border-left-width:0px;border-style:initial;border-color:initial;vertic=
al-align:baseline">
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;=
border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-=
left-width:0px;border-style:initial;border-color:initial;vertical-align:bas=
eline;border-style:initial;border-color:initial">
<font face=3D"'courier new', monospace" size=3D"1"># inspector clie=
nt 3</font></div></div><div style=3D"margin-top:0px;margin-right:0px;margin=
-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-botto=
m:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-b=
ottom-width:0px;border-left-width:0px;border-style:initial;border-color:ini=
tial;vertical-align:baseline">
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;=
border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-=
left-width:0px;border-style:initial;border-color:initial;vertical-align:bas=
eline;border-style:initial;border-color:initial">
<font face=3D"'courier new', monospace" size=3D"1">open -a "Go=
ogle Chrome Canary"=A0"<a href=3D"http://trac.webkit.org/export/1=
16497/trunk/Source/WebCore/inspector/front-end/inspector.html?ws=3Dlocalhos=
t:9023/proxy/ws://localhost:9222/devtools/page/4_1" target=3D"_blank">http:=
//trac.webkit.org/export/116497/trunk/Source/WebCore/inspector/front-end/in=
spector.html?ws=3Dlocalhost:9023/proxy/ws://localhost:9222/devtools/page/4_=
1</a>"</font></div>
</div></blockquote><div style=3D"margin-top:0px;margin-right:0px;margin-bot=
tom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0p=
x;padding-left:0px;border-top-width:0px;border-right-width:0px;border-botto=
m-width:0px;border-left-width:0px;border-style:initial;border-color:initial=
;vertical-align:baseline">
<br></div><div>etc=85</div><div><br></div><div>The Elements panel only real=
ly seems to work completely with one client at a time. Everything else seem=
s to work just fine.</div><div><br></div><div>I plan to create multiple too=
ls that use the web inspector socket API.</div>
<div>This proxy thing will make it possible to use multiple tools at once.<=
/div><div><br></div><div>Enjoy.</div></blockquote></div><br>
--20cf30780a6a5ad2b004bf9572d2--