This content originally appeared on Modern Web Development with Chrome and was authored by Paul Kinlan
<p>Owen Campbell-Moore, one of Chrome's PM's for Progressive Web Apps and new APIs asked the following question, and
instantly Surma (that is the only name we know for him) said "Sockets"</p>
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr"><a href="https://twitter.com/owencm">@owencm</a> Network connections. Like writing an SSH client as a PWA.</p>— Surma (@DasSurma) <a href="https://twitter.com/DasSurma/status/763904521441570816">August 12, 2016</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>I also threw in my two pennies, and Marcos Ceres asked for use-cases.</p>
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr"><a href="https://twitter.com/annevk">@annevk</a> <a href="https://twitter.com/Paul_Kinlan">@Paul_Kinlan</a> <a href="https://twitter.com/DasSurma">@DasSurma</a> <a href="https://twitter.com/owencm">@owencm</a> I'd still be interested in a good list of fun things that people want to build but can't.</p>— Marcos Caceres (@marcosc) <a href="https://twitter.com/marcosc/status/763995753354178564">August 12, 2016</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>So here is a list of Apps that people have told me they want to build to host inside a browser. It includes
client apps but also Services and Servers.</p>
<h3 id="outgoing-connections">Outgoing connections</h3>
<p>The TL;DR is anything normally has to proxy and convert web requests via a web server to another host.</p>
<ul>
<li>E-mail client connecting directly to IMAP server, POP3, SMTP without a HTTP/WebSocket bridge</li>
<li>SSH client - to connect to a server without relay</li>
<li>RDP client</li>
<li>IRC client - again to connect directly</li>
<li>FTP client (and other file transfer clients)</li>
<li>Video Streaming client - connect directly to RTMP server.</li>
<li>BitTorrent client (needs incoming data too)</li>
<li>XMPP Client</li>
<li>Connect to Bitcoin/Blockchain server</li>
<li>Multicast client (and server) to stream video to everyone on the Network</li>
<li>MDNS Discovery service to discover local devices</li>
<li>Connect to discovered device (such as wifi speakers) and configure (via @annevk)</li>
<li>Connect to a time server</li>
<li>Direct connect to MQTT server.</li>
<li>ADB over Wifi - Someone wanted to use Cyanogen's way of debugging their Android device and connecting to it</li>
<li>Connect to DNS service and query it, was to be used for verifying that a record had been set to prove ownership</li>
<li>Many games that have multiplayer.</li>
</ul>
<h3 id="incoming-connections">Incoming connections</h3>
<p>Mostly the TL;DR here is, a server for everything in the above list.</p>
<ul>
<li>IRC server</li>
<li>BitTorrent client</li>
<li>HTTP Server for simple local testing.</li>
<li>HTTP Server to host electron style apps (where the server and client are distinct)</li>
<li>SMTP service (yes - people have asked me that they want to host this in the browser)</li>
</ul>
<p>If you have any other examples let me know and I can include them here.</p>
This content originally appeared on Modern Web Development with Chrome and was authored by Paul Kinlan