Documentation
¶
Index ¶
- func GetPeerConnStats(pc *wrappedPeerConnection) (stats webrtc.StatsReport)
- type AnnounceRequest
- type AnnounceResponse
- type DataChannelConn
- type DataChannelContext
- type Offer
- type TrackerClient
- func (tc *TrackerClient) Announce(event tracker.AnnounceEvent, infoHash [20]byte) error
- func (tc *TrackerClient) Close() error
- func (tc *TrackerClient) CloseOffersForInfohash(infoHash [20]byte)
- func (tc *TrackerClient) RtcPeerConnStats() map[string]webrtc.StatsReport
- func (tc *TrackerClient) Start(onStop func(error))
- func (me *TrackerClient) Stats() TrackerClientStats
- type TrackerClientStats
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPeerConnStats ¶
func GetPeerConnStats(pc *wrappedPeerConnection) (stats webrtc.StatsReport)
Types ¶
type AnnounceRequest ¶
type AnnounceRequest struct {
Numwant int `json:"numwant"`
Uploaded int64 `json:"uploaded"`
Downloaded int64 `json:"downloaded"`
Left int64 `json:"left"`
Event string `json:"event,omitempty"`
Action string `json:"action"`
InfoHash string `json:"info_hash"`
PeerID string `json:"peer_id"`
Offers []Offer `json:"offers"`
}
type AnnounceResponse ¶
type AnnounceResponse struct {
InfoHash string `json:"info_hash"`
Action string `json:"action"`
Interval *int `json:"interval,omitempty"`
Complete *int `json:"complete,omitempty"`
Incomplete *int `json:"incomplete,omitempty"`
PeerID string `json:"peer_id,omitempty"`
ToPeerID string `json:"to_peer_id,omitempty"`
Answer *webrtc.SessionDescription `json:"answer,omitempty"`
Offer *webrtc.SessionDescription `json:"offer,omitempty"`
OfferID string `json:"offer_id,omitempty"`
}
type DataChannelConn ¶
type DataChannelConn struct {
// contains filtered or unexported fields
}
WebRTC data channel wrapper that supports operating as a peer conn ReadWriteCloser.
type DataChannelContext ¶
type DataChannelContext struct {
OfferId string
LocalOffered bool
InfoHash [20]byte
Span trace.Span
Context context.Context
// contains filtered or unexported fields
}
func (*DataChannelContext) GetSelectedIceCandidatePair ¶
func (me *DataChannelContext) GetSelectedIceCandidatePair() (*webrtc.ICECandidatePair, error)
type Offer ¶
type Offer struct {
OfferID string `json:"offer_id"`
Offer webrtc.SessionDescription `json:"offer"`
}
type TrackerClient ¶
type TrackerClient struct {
Url string
GetAnnounceRequest func(_ tracker.AnnounceEvent, infoHash [20]byte) (tracker.AnnounceRequest, error)
PeerId [20]byte
OnConn onDataChannelOpen
Logger log.Logger
Dialer *websocket.Dialer
WebsocketTrackerHttpHeader func() http.Header
ICEServers []webrtc.ICEServer
// callbacks
OnConnected func(error)
OnDisconnected func(error)
OnAnnounceSuccessful func(ih string)
OnAnnounceError func(ih string, err error)
// contains filtered or unexported fields
}
Client represents the webtorrent client
func (*TrackerClient) Announce ¶
func (tc *TrackerClient) Announce(event tracker.AnnounceEvent, infoHash [20]byte) error
func (*TrackerClient) Close ¶
func (tc *TrackerClient) Close() error
func (*TrackerClient) CloseOffersForInfohash ¶
func (tc *TrackerClient) CloseOffersForInfohash(infoHash [20]byte)
func (*TrackerClient) RtcPeerConnStats ¶
func (tc *TrackerClient) RtcPeerConnStats() map[string]webrtc.StatsReport
Calculate the stats for all the peer connections the moment they are requested. As the stats will change over the life of a peer connection, this ensures that the updated values are returned.
func (*TrackerClient) Start ¶
func (tc *TrackerClient) Start(onStop func(error))
Finishes initialization and spawns the run routine, calling onStop when it completes with the result. We don't let the caller just spawn the runner directly, since then we can race against .Close to finish initialization.
func (*TrackerClient) Stats ¶
func (me *TrackerClient) Stats() TrackerClientStats
type TrackerClientStats ¶
Click to show internal directories.
Click to hide internal directories.