limit data channel name for chat

This commit is contained in:
guochao 2023-10-14 20:43:07 +08:00
parent 91e7055bf6
commit cac896ff1d
Signed by: guochao
GPG Key ID: 79F7306D2AA32FC3

View File

@ -42,6 +42,8 @@ var (
StyleError = lipgloss.NewStyle().Foreground(lipgloss.Color("red")) StyleError = lipgloss.NewStyle().Foreground(lipgloss.Color("red"))
StylePeer = lipgloss.NewStyle() StylePeer = lipgloss.NewStyle()
StylePeerSelected = lipgloss.NewStyle().Background(lipgloss.Color("gray")) StylePeerSelected = lipgloss.NewStyle().Background(lipgloss.Color("gray"))
dataChannelName = "chat"
) )
type SignalClient struct { type SignalClient struct {
@ -270,7 +272,7 @@ func (client *SignalClient) OnDiscoverResponse(ctx context.Context, stream proto
if err != nil { if err != nil {
return return
} }
dataChannel, err := peerConnection.CreateDataChannel("chan", nil) dataChannel, err := peerConnection.CreateDataChannel(dataChannelName, nil)
if err != nil { if err != nil {
client.Program.Send(systemMsg(fmt.Sprint("failed to create answer: ", err))) client.Program.Send(systemMsg(fmt.Sprint("failed to create answer: ", err)))
return return
@ -407,6 +409,9 @@ func (client SignalClient) GetOrCreatePeerConnection(sender string) (*webrtc.Pee
peerConnection.OnDataChannel(func(dc *webrtc.DataChannel) { peerConnection.OnDataChannel(func(dc *webrtc.DataChannel) {
client.Program.Send(systemMsg(fmt.Sprint("Connected to client " + sender + ": " + dc.Label()))) client.Program.Send(systemMsg(fmt.Sprint("Connected to client " + sender + ": " + dc.Label())))
if dc.Label() != dataChannelName {
client.Program.Send(fmt.Sprintf("ignored data channel: %v", dc.Label()))
}
client.Channels[sender] = dc client.Channels[sender] = dc
client.SetupDataChannel(peerConnection, dc, sender) client.SetupDataChannel(peerConnection, dc, sender)
@ -428,6 +433,10 @@ func (client *SignalClient) SetupDataChannel(pc *webrtc.PeerConnection, dc *webr
}) })
} }
}) })
dc.OnError(func(err error) {
dc.Close()
})
} }
func main() { func main() {