Golang中Webrtc Data Channel一直处于连接状态无法打开的解决方法

Golang中Webrtc Data Channel一直处于连接状态无法打开的解决方法 你好,

我正在尝试使用Go语言中的WebRTC数据通道发送消息。但数据通道的readyState始终处于connecting状态,导致我无法发送消息。有人能帮我找出问题所在吗?

package main

import (
	"fmt"
	"log"

	"github.com/pion/webrtc/v3"
)

func main() {
	// 设置WebRTC连接
	peerConnection, err := webrtc.NewPeerConnection(webrtc.Configuration{
		ICEServers: []webrtc.ICEServer{
			{
				URLs: []string{"stun:stun.l.google.com:19302"},
			},
		},
	})
	if err != nil {
		log.Fatal(err)
	}

	// 设置数据通道
	dataChannel, err := peerConnection.CreateDataChannel("myDataChannel", nil)
	if err != nil {
		log.Fatal(err)
	}

	// 设置通道消息处理程序
	dataChannel.OnOpen(func() {
		fmt.Println("数据通道已打开")
	})
	dataChannel.OnMessage(func(msg webrtc.DataChannelMessage) {
		fmt.Printf("来自数据通道的消息:%s\n", string(msg.Data))
	})

	fmt.Println(dataChannel.ReadyState())
	
	// 通过数据通道发送消息
	message := []byte("Hello, world!")
	if err := dataChannel.Send(message); err != nil {
		log.Fatal(err)
	}

	// 程序结束时关闭连接
	defer peerConnection.Close()

	// 无限等待
	select {}
}

更多关于Golang中Webrtc Data Channel一直处于连接状态无法打开的解决方法的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

太棒了

更多关于Golang中Webrtc Data Channel一直处于连接状态无法打开的解决方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


ef_manu:

URLs: []string{"stun:<http://stun.l.google.com:19302\"|stun.l.google.com:19302>"},
	

这看起来不像一个有效的URL。在你的代码中它实际是这样的吗,还是在复制粘贴到这个论坛时发生了什么?

回到顶部