A simple WebSocket chat server written in Haskell. Used in the JavaScript course from Devalot: https://code.devalot.com/training/webdev
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Peter J. Jones ac28f0a8a4
Reduce boilerplate, update dependencies, release 0.1.0.1
пре 4 месеци
examples Add example JavaScript app and code snippets to the README пре 10 месеци
src Reduce boilerplate, update dependencies, release 0.1.0.1 пре 4 месеци
.gitignore Initial import пре 10 месеци
CHANGES.md Initial import пре 10 месеци
LICENSE Reduce boilerplate, update dependencies, release 0.1.0.1 пре 4 месеци
README.md Fix table formatting in the README пре 10 месеци
Setup.hs Initial import пре 10 месеци
default.nix Initial import пре 10 месеци
wschat.cabal Reduce boilerplate, update dependencies, release 0.1.0.1 пре 4 месеци
wschat.nix Reduce boilerplate, update dependencies, release 0.1.0.1 пре 4 месеци

README.md

A Simple WebSocket Chat Server

This package includes a single executable: wschat. It’s an extremely simple chat server using WebSockets.

The primary goal of this package is to provide a WebSocket server for students who are learning JavaScript so they have a real server to experiment with.

Connecting from JavaScript

Before connecting you will need two pieces of information: the server’s host name and an access code. For this example we’ll assume the following information:

Needed Information Example Value
hostname example.com
access code abc123

Now we can construct a URL and open a connection:

const socket = new WebSocket("wss://example.com/abc123");

NOTE: if your server doesn’t support SSL/TLS you will have to replace wss:// with ws://.

All chat messages that are sent and received are JSON encoded objects that look like this:

{
  "sender": "name of message sender",
  "content": "the content of the message"
}

Here’s an example of sending a message to the server:

const message = {
  sender: "Alice",
  content: "Hello!"
};

socket.send(JSON.stringify(message));

A complete example using web components can be found in the examples directory.