Skip to content

Commit 82191cf

Browse files
authored
Support chat data messages. (#707)
1 parent c3685d6 commit 82191cf

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed

data.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package lksdk
22

33
import (
4+
"time"
5+
6+
"github.com/livekit/protocol/utils/guid"
47
"google.golang.org/protobuf/proto"
58

69
"github.com/livekit/protocol/livekit"
@@ -15,7 +18,8 @@ type DataPacket interface {
1518
// Compile-time assertion for all supported data packet types.
1619
var (
1720
_ DataPacket = (*UserDataPacket)(nil)
18-
_ DataPacket = (*livekit.SipDTMF)(nil) // implemented in the protocol package
21+
_ DataPacket = (*livekit.SipDTMF)(nil) // implemented in the protocol package
22+
_ DataPacket = (*livekit.ChatMessage)(nil) // implemented in the protocol package
1923
)
2024

2125
// UserData is a custom user data that can be sent via WebRTC.
@@ -43,6 +47,18 @@ func (p *UserDataPacket) ToProto() *livekit.DataPacket {
4347
}}
4448
}
4549

50+
// ChatMessage creates a chat message that can be sent via WebRTC.
51+
func ChatMessage(ts time.Time, text string) *livekit.ChatMessage {
52+
if ts.IsZero() {
53+
ts = time.Now()
54+
}
55+
return &livekit.ChatMessage{
56+
Id: guid.New("MSG_"),
57+
Timestamp: ts.UnixMilli(),
58+
Message: text,
59+
}
60+
}
61+
4662
// receiving
4763

4864
type DataReceiveParams struct {

engine.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/livekit/protocol/livekit"
3131
protoLogger "github.com/livekit/protocol/logger"
3232
protosignalling "github.com/livekit/protocol/signalling"
33+
3334
"github.com/livekit/server-sdk-go/v2/signalling"
3435
)
3536

@@ -598,6 +599,8 @@ func (e *RTCEngine) handleDataPacket(msg webrtc.DataChannelMessage) {
598599
})
599600
case *livekit.DataPacket_SipDtmf:
600601
e.engineHandler.OnDataPacket(identity, msg.SipDtmf)
602+
case *livekit.DataPacket_ChatMessage:
603+
e.engineHandler.OnDataPacket(identity, msg.ChatMessage)
601604
case *livekit.DataPacket_Transcription:
602605
e.engineHandler.OnTranscription(msg.Transcription)
603606
case *livekit.DataPacket_RpcRequest:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require (
1010
github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731
1111
github.com/livekit/media-sdk v0.0.0-20250518151703-b07af88637c5
1212
github.com/livekit/mediatransportutil v0.0.0-20250519131108-fb90f5acfded
13-
github.com/livekit/protocol v1.39.4-0.20250725083335-7313a8195a4b
13+
github.com/livekit/protocol v1.39.4-0.20250729125216-1a9149204316
1414
github.com/magefile/mage v1.15.0
1515
github.com/pion/dtls/v3 v3.0.6
1616
github.com/pion/interceptor v0.1.40

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ github.com/livekit/media-sdk v0.0.0-20250518151703-b07af88637c5 h1:aFCwt/rticj5L
9999
github.com/livekit/media-sdk v0.0.0-20250518151703-b07af88637c5/go.mod h1:7ssWiG+U4xnbvLih9WiZbhQP6zIKMjgXdUtIE1bm/E8=
100100
github.com/livekit/mediatransportutil v0.0.0-20250519131108-fb90f5acfded h1:ylZPdnlX1RW9Z15SD4mp87vT2D2shsk0hpLJwSPcq3g=
101101
github.com/livekit/mediatransportutil v0.0.0-20250519131108-fb90f5acfded/go.mod h1:mSNtYzSf6iY9xM3UX42VEI+STHvMgHmrYzEHPcdhB8A=
102-
github.com/livekit/protocol v1.39.4-0.20250725083335-7313a8195a4b h1:uxvoeGd0vmGDIL0JyLLV9h2o97tpt3rR9s4ikuLVz/g=
103-
github.com/livekit/protocol v1.39.4-0.20250725083335-7313a8195a4b/go.mod h1:YlgUxAegtU8jZ0tVXoIV/4fHeHqqLvS+6JnPKDbpFPU=
102+
github.com/livekit/protocol v1.39.4-0.20250729125216-1a9149204316 h1:eVP2NW+wdzPfzk2qDy1vXLGOnok5stxMR3zg5ZfT150=
103+
github.com/livekit/protocol v1.39.4-0.20250729125216-1a9149204316/go.mod h1:YlgUxAegtU8jZ0tVXoIV/4fHeHqqLvS+6JnPKDbpFPU=
104104
github.com/livekit/psrpc v0.6.1-0.20250724161801-262a822e7cd7 h1:x50axcjXwfwnII7sMhJPyZ6f5LpPapZtsp75KJX8nIQ=
105105
github.com/livekit/psrpc v0.6.1-0.20250724161801-262a822e7cd7/go.mod h1:kmD+AZPkWu0MaXIMv57jhNlbiSZZ/Jx4bzlxBDVmJes=
106106
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=

0 commit comments

Comments
 (0)