Use-cases for sockets API on the web

Paul Kinlan

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”

I also threw in my two pennies, and Marcos Ceres asked for use-cases.

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.

Outgoing connections

The TL;DR is anything normally has to proxy and convert web requests via a web server to another host.

  • E-mail client connecting directly to IMAP server, POP3, SMTP without a HTTP/WebSocket bridge
  • SSH client - to connect to a server without relay
  • RDP client
  • IRC client - again to connect directly
  • FTP client (and other file transfer clients)
  • Video Streaming client - connect directly to RTMP server.
  • BitTorrent client (needs incoming data too)
  • XMPP Client
  • Connect to Bitcoin/Blockchain server
  • Multicast client (and server) to stream video to everyone on the Network
  • MDNS Discovery service to discover local devices
  • Connect to discovered device (such as wifi speakers) and configure (via @annevk)
  • Connect to a time server
  • Direct connect to MQTT server.
  • ADB over Wifi - Someone wanted to use Cyanogen’s way of debugging their Android device and connecting to it
  • Connect to DNS service and query it, was to be used for verifying that a record had been set to prove ownership
  • Many games that have multiplayer.

Incoming connections

Mostly the TL;DR here is, a server for everything in the above list.

  • IRC server
  • BitTorrent client
  • HTTP Server for simple local testing.
  • HTTP Server to host electron style apps (where the server and client are distinct)
  • SMTP service (yes - people have asked me that they want to host this in the browser)

If you have any other examples let me know and I can include them here.

Paul Kinlan

Trying to make the web and developers better.

RSS Github Medium