Skip to content
forked from shunr/wstream

QUIC communications library for Waterloop

Notifications You must be signed in to change notification settings

waterloop/wstream

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

wstream

import "github.com/shunr/wstream"

Usage

type Conn

type Conn interface {
	Close()
	Streams() map[string]Stream
}

func AcceptConn

func AcceptConn(session *quic.Session, channels []string) Conn

AcceptConn accepts a muliplexed connection from QUIC session and returns Conn interface

func OpenConn

func OpenConn(session *quic.Session, channels []string) Conn

OpenConn opens a new muliplexed connection from QUIC session and returns Conn interface

type OrderedStream

type OrderedStream struct {
	ID int
}

func (*OrderedStream) Close

func (wstream *OrderedStream) Close()

Close closes the OrderedStream

func (*OrderedStream) ReadCommPacketSync

func (wstream *OrderedStream) ReadCommPacketSync() (*wjson.CommPacketJson, error)

ReadCommPacketSync returns the next CommPacketJson in the OrderedStream, blocking until completion

func (*OrderedStream) WriteCommPacketSync

func (wstream *OrderedStream) WriteCommPacketSync(packet *wjson.CommPacketJson) error

WriteCommPacketSync takes a pointer to a CommPacketJson and writes it to the OrderedStream, blocking until completion

type Stream

type Stream interface {
	Close()
	ReadCommPacketSync() (*wjson.CommPacketJson, error)
	WriteCommPacketSync(packet *wjson.CommPacketJson) error
}

func OpenStream

func OpenStream(stream *quic.Stream) Stream

OpenStream creates a new OrderedStream from an existing QUIC stream

type WConn

type WConn struct {
	ID int
}

func (*WConn) Close

func (wconn *WConn) Close()

Close closes the OrderedStream

func (*WConn) Streams

func (wconn *WConn) Streams() map[string]Stream

Streams returns all streams making up the connection

About

QUIC communications library for Waterloop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%