moqtransport
is an implementation of Media over QUIC
Transport on top of
quic-go and optionally
webtransport-go.
The examples
directory contains an implementation of MoQ
Chat.
To run a simple chat server using MoQ Tranpsort on top of QUIC, run:
go run examples/chat-server/main.go
Then, open a new shell and start a client:
go run examples/chat-client/main.go
The client is a simple interactive shell that reads and writes messages from
stdin
and stdout
(input and output is currently not well synchronized).
Open another shell and run a second client to chat with the first one using the
commands join <roomID> <username>
to join a room and msg <roomID> <message>
to send messages to a room.
To use WebTransport, you need to create a TLS certificate. This can be done using mkcert:
mkcert localhost
mkcert -install
mkcert
will generate a localhost.pem
and a localhost-key.pem
file. If you
change the name of the files or use a different host name, you can use the
-cert
and -key
flags of the server command to point it to the correct files.
Now start the server and client with the -webtransport
and -addr
flags to
run MoQ Transport on top of WebTransport:
Server:
go run examples/chat-server/main.go -webtransport
Client:
go run examples/chat-client/main.go -webtransport -addr https://localhost:8080/moq