package websocket
import "github.com/libp2p/go-libp2p/p2p/transport/websocket"
Package websocket implements a websocket based transport for go-libp2p.
Index ¶
- Variables
- func ConvertWebsocketMultiaddrToNetAddr(maddr ma.Multiaddr) (net.Addr, error)
- func ParseWebsocketNetAddr(a net.Addr) (ma.Multiaddr, error)
- type Addr
- func NewAddr(host string) *Addr
- func NewAddrWithScheme(host string, isSecure bool) *Addr
- func (addr *Addr) Network() string
- type Conn
- func NewConn(raw *ws.Conn, secure bool) *Conn
- func (c *Conn) Close() error
- func (c *Conn) LocalAddr() net.Addr
- func (c *Conn) LocalMultiaddr() ma.Multiaddr
- func (c *Conn) Read(b []byte) (int, error)
- func (c *Conn) RemoteAddr() net.Addr
- func (c *Conn) RemoteMultiaddr() ma.Multiaddr
- func (c *Conn) Scope() network.ConnManagementScope
- func (c *Conn) SetDeadline(t time.Time) error
- func (c *Conn) SetReadDeadline(t time.Time) error
- func (c *Conn) SetWriteDeadline(t time.Time) error
- func (c *Conn) Write(b []byte) (n int, err error)
- type Option
- type WebsocketTransport
- func New(u transport.Upgrader, rcmgr network.ResourceManager, sharedTCP *tcpreuse.ConnMgr, opts ...Option) (*WebsocketTransport, error)
- func (t *WebsocketTransport) CanDial(a ma.Multiaddr) bool
- func (t *WebsocketTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
- func (t *WebsocketTransport) Listen(a ma.Multiaddr) (transport.Listener, error)
- func (t *WebsocketTransport) Protocols() []int
- func (t *WebsocketTransport) Proxy() bool
- func (t *WebsocketTransport) Resolve(_ context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error)
Variables ¶
var GracefulCloseTimeout = 100 * time.Millisecond
GracefulCloseTimeout is the time to wait trying to gracefully close a connection before simply cutting it.
WsFmt is multiaddr formatter for WsProtocol
Functions ¶
func ConvertWebsocketMultiaddrToNetAddr ¶
func ParseWebsocketNetAddr ¶
Types ¶
type Addr ¶
Addr is an implementation of net.Addr for WebSocket.
func NewAddr ¶
NewAddr creates an Addr with `ws` scheme (insecure).
Deprecated. Use NewAddrWithScheme.
func NewAddrWithScheme ¶
NewAddrWithScheme creates a new Addr using the given host string. isSecure should be true for WSS connections and false for WS.
func (*Addr) Network ¶
Network returns the network type for a WebSocket, "websocket".
type Conn ¶
Conn implements net.Conn interface for gorilla/websocket.
func NewConn ¶
NewConn creates a Conn given a regular gorilla/websocket Conn.
Deprecated: There's no reason to use this method externally. It'll be unexported in a future release.
func (*Conn) Close ¶
Close closes the connection. subsequent and concurrent calls will return the same error value. This method is thread-safe.
func (*Conn) LocalAddr ¶
func (*Conn) LocalMultiaddr ¶
LocalMultiaddr implements manet.Conn.
func (*Conn) Read ¶
func (*Conn) RemoteAddr ¶
func (*Conn) RemoteMultiaddr ¶
RemoteMultiaddr implements manet.Conn.
func (*Conn) Scope ¶
func (c *Conn) Scope() network.ConnManagementScope
func (*Conn) SetDeadline ¶
func (*Conn) SetReadDeadline ¶
func (*Conn) SetWriteDeadline ¶
func (*Conn) Write ¶
type Option ¶
type Option func(*WebsocketTransport) error
func WithTLSClientConfig ¶
WithTLSClientConfig sets a TLS client configuration on the WebSocket Dialer. Only relevant for non-browser usages.
Some useful use cases include setting InsecureSkipVerify to `true`, or setting user-defined trusted CA certificates.
func WithTLSConfig ¶
WithTLSConfig sets a TLS configuration for the WebSocket listener.
type WebsocketTransport ¶
type WebsocketTransport struct {
// contains filtered or unexported fields
}
WebsocketTransport is the actual go-libp2p transport
func New ¶
func New(u transport.Upgrader, rcmgr network.ResourceManager, sharedTCP *tcpreuse.ConnMgr, opts ...Option) (*WebsocketTransport, error)
func (*WebsocketTransport) CanDial ¶
func (t *WebsocketTransport) CanDial(a ma.Multiaddr) bool
func (*WebsocketTransport) Dial ¶
func (t *WebsocketTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
Dial will dial the given multiaddr and expect the given peer. If an HTTPS_PROXY env is set, it will use that for the dial out.
func (*WebsocketTransport) Listen ¶
func (*WebsocketTransport) Protocols ¶
func (t *WebsocketTransport) Protocols() []int
func (*WebsocketTransport) Proxy ¶
func (t *WebsocketTransport) Proxy() bool
func (*WebsocketTransport) Resolve ¶
Source Files ¶
addrs.go conn.go listener.go websocket.go
- Version
- v0.41.1 (latest)
- Published
- Mar 24, 2025
- Platform
- linux/amd64
- Imports
- 21 packages
- Last checked
- 3 weeks ago –
Tools for package owners.