type onDataChannelOpen func(_ datachannel.ReadWriteCloser, dcc DataChannelContext)
func (tc *TrackerClient) doWebsocket() error {
+ metrics.Add("websocket dials", 1)
c, _, err := websocket.DefaultDialer.Dial(tc.Url, nil)
if err != nil {
return fmt.Errorf("dialing tracker: %w", err)
func (tc *TrackerClient) Run() error {
for {
err := tc.doWebsocket()
- tc.Logger.Printf("websocket instance ended: %v", err)
+ tc.Logger.WithDefaultLevel(log.Warning).Printf("websocket instance ended: %v", err)
time.Sleep(time.Minute)
}
}
}
func (tc *TrackerClient) announce(event tracker.AnnounceEvent) error {
+ metrics.Add("outbound announces", 1)
var randOfferId [20]byte
_, err := rand.Read(randOfferId[:])
if err != nil {
return
}
tc.Logger.Printf("offer %q got answer %v", offerId, answer)
+ metrics.Add("outbound offers answered", 1)
err := offer.setAnswer(answer, func(dc datachannel.ReadWriteCloser) {
+ metrics.Add("outbound offers answered with datachannel", 1)
tc.OnConn(dc, DataChannelContext{
Local: offer.originalOffer,
Remote: answer,