[IPython-dev] Notebook websocket change

Brian Granger ellisonbg at gmail.com
Thu Jan 8 13:19:19 EST 2015

So far we have felt that it isn't worth the complexity cost for us to
support people that deliberately choose to break the internet. It is not
like WebSockets is some crazy, insecure, unsupported hack over a weird
port. It is just different bytes going over the same HTTP/HTTPS socket
connection and is essentially a formal standard (I know you know this -
this is our messaging to companies who complain).

Our situation is a bit different though than SMC because most of our
current users run the notebook on their own computers. This may be
something that we eventually want to rethink as more people run this in the
cloud. However, I would like to push back on the companies choosing to
break the internet really hard before giving in. I am guessing that in most
cases, WebSockets are broken in enterprise setting not because of some
important deliberate choice, but rather because people don't understand it
and are using default settings that disable them (I could be wrong



On Thu, Jan 8, 2015 at 10:10 AM, William Stein <wstein at gmail.com> wrote:

> On Thu, Jan 8, 2015 at 10:04 AM, MinRK <benjaminrk at gmail.com> wrote:
> > Alternative notebook frontend authors:
> >
> > There is an upcoming change to websocket connections to the notebook
> server.
> > Instead of three websockets per notebook, one for each zmq channel,
> there is
> > a single websocket connection between the server and client. The channel
> > associated with each message is identified by a channel key in the
> message
> > dict itself.
> >
> > Relevant changes:
> >
> > url is /channels instead of /shell, etc.
> > when sending a message, add a channel key with the channel name ('shell',
> > 'stdin')
> > when receiving a message, check the channel key for routing
> >
> > -MinRK
> Thanks.
> Of related interest, what the situation involving providing a fallback
> to websockets?
> I tried to only support websockets connections with SageMathCloud for
> a few weeks, and immediately ran into many complaints from users who
> couldn't connect as a result.   This is even with https and so on --
> it's just a sad fact that in some corporate or otherwise constrained
> environments that websockets don't work.   By far the best approach I
> found was to use Primus + Engine.io, which uses websockets if
> possible, but will fallback to polling.   So this is what SMC does
> now, and everything works, even for people that don't have websockets
> as an option... except for IPython-in-SMC of course, which doesn't
> work.
> Another unrelated issue is that I'm now hardcoding making this change
> around line 171 of IPython/html/notebookapp.py, since I want to serve
> the purely static html of IPython from a completely different web
> server:
>             #static_url_prefix = url_path_join(base_url,'/static/'),
>             static_url_prefix = '/static/ipython/',
> (Sorry for derailing the thread.)
>  -- William
> >
> >
> > _______________________________________________
> > IPython-dev mailing list
> > IPython-dev at scipy.org
> > http://mail.scipy.org/mailman/listinfo/ipython-dev
> >
> --
> William Stein
> Professor of Mathematics
> University of Washington
> http://wstein.org
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev

Brian E. Granger
Cal Poly State University, San Luis Obispo
@ellisonbg on Twitter and GitHub
bgranger at calpoly.edu and ellisonbg at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20150108/4eb68b6f/attachment.html>

More information about the IPython-dev mailing list