<metaname="description" content="Full Stack Python explains each layer of the web application stack, from the server up through the rendering in a user's browser.">
for which web browsers and specific versions support WebSockets.</p>
</li>
<li>
<p>Mozilla's
<ahref="https://developer.mozilla.org/en-US/docs/WebSockets">Developer Resources for WebSockets</a>
is a good place to find documentation and tools for developing with
WebSockets.</p>
</li>
</ul>
<h2>Python-specific WebSockets resources</h2>
<ul>
<li>
<p><ahref="http://mrjoes.github.io/2013/06/21/python-realtime.html">Real-time in Python</a>
provides Python-specific context for how the server push updates were
implemented in the past and how Python's tools have evolved to perform
server side updates.</p>
</li>
<li>
<p>The <ahref="https://www.twilio.com/blog/2014/11/choose-your-own-adventure-presentations-with-reveal-js-python-and-websockets.html">Choose Your Own Adventure Presentations</a>
tutorial uses WebSockets via gevent on the server and socketio.js for
pushing vote count updates from the server to the client. </p>
</li>
<li>
<p><ahref="http://bottlepy.org/docs/dev/async.html">Async with Bottle</a> shows how to
use greenlets to support WebSockets with the Bottle web framework.</p>
<h4>Interested in a complete Full Stack Python book with detailed tutorials and example code? Sign up here and you'll get an alert email if a book is created. No other emails will be sent other than sign up confirmation.</h4>
$("#mc-embedded-subscribe-form").unbind('submit');//remove the validator so we can get into beforeSubmit on the ajaxform, which then calls the validator