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.goThen, open a new shell and start a client:
go run examples/chat-client/main.goThe 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 -installmkcert 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 -webtransportClient:
go run examples/chat-client/main.go -webtransport -addr https://localhost:8080/moq