websocket

package
v2.15.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2017 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package websocket implements Websocket transport

Websocket transport implements a HTTP(S) compliable, surveillance proof transport method with plausible deniability.

To configure such a listener, set streamSettings to be ws. A http(s) listener will be listening at the port you have configured.

There is additional configure can be made at transport configure.

"wsSettings":{
      "Path":"ws", // the path our ws handler bind
      "Pto": "wss/ws", // the transport protocol we are using ws or wss(listen ws with tls)
      "Cert":"cert.pem", // if you have configured to use wss, configure your cert here
      "PrivKey":"priv.pem" //if you have configured to use wss, configure your privatekey here
    }

To configure such a Dialer, set streamSettings to be ws.

There is additional configure can be made at transport configure.

"wsSettings":{
      "Path":"ws", // the path our ws handler bind
      "Pto": "wss/ws", // the transport protocol we are using ws or wss(listen ws with tls)
    }

It is worth noting that accepting a non-valid cert is not supported as a self-signed or invalid cert can be a sign of a website that is not correctly configured and lead to additional investigation.

This transport was disscussed at https://github.com/v2ray/v2ray-core/issues/224

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrClosedListener = errors.New("Listener is closed.")
)
View Source
var StoppedError = errors.New("Listener stopped")

Functions

func ListenWS

func ListenWS(address v2net.Address, port v2net.Port, options internet.ListenOptions) (internet.Listener, error)

Types

type Config

type Config struct {
	// Whether or not to reuse WebSocket connections.
	ConnectionReuse *ConnectionReuse `protobuf:"bytes,1,opt,name=connection_reuse,json=connectionReuse" json:"connection_reuse,omitempty"`
	// URL path to the WebSocket service. Empty value means root(/).
	Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
}

func (*Config) Descriptor

func (*Config) Descriptor() ([]byte, []int)

func (*Config) GetConnectionReuse

func (m *Config) GetConnectionReuse() *ConnectionReuse

func (*Config) GetPath

func (m *Config) GetPath() string

func (*Config) IsConnectionReuse

func (c *Config) IsConnectionReuse() bool

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

type ConnectionReuse

type ConnectionReuse struct {
	Enable bool `protobuf:"varint,1,opt,name=enable" json:"enable,omitempty"`
}

func (*ConnectionReuse) Descriptor

func (*ConnectionReuse) Descriptor() ([]byte, []int)

func (*ConnectionReuse) GetEnable

func (m *ConnectionReuse) GetEnable() bool

func (*ConnectionReuse) ProtoMessage

func (*ConnectionReuse) ProtoMessage()

func (*ConnectionReuse) Reset

func (m *ConnectionReuse) Reset()

func (*ConnectionReuse) String

func (m *ConnectionReuse) String() string

type ConnectionWithError

type ConnectionWithError struct {
	// contains filtered or unexported fields
}

type StoppableListener

type StoppableListener struct {
	net.Listener //Wrapped listener
}

func NewStoppableListener

func NewStoppableListener(l net.Listener) (*StoppableListener, error)

func (*StoppableListener) Accept

func (sl *StoppableListener) Accept() (net.Conn, error)

func (*StoppableListener) Stop

func (sl *StoppableListener) Stop()

type WSListener

type WSListener struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*WSListener) Accept

func (v *WSListener) Accept() (internet.Connection, error)

func (*WSListener) Addr

func (v *WSListener) Addr() net.Addr

func (*WSListener) Close

func (v *WSListener) Close() error

func (*WSListener) Put

func (v *WSListener) Put(id internal.ConnectionID, conn net.Conn)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL