jaryhe 67001cd674 new | před 6 měsíci | |
---|---|---|
.. | ||
.gitignore | před 6 měsíci | |
LICENSE | před 6 měsíci | |
README.md | před 6 měsíci | |
default.yaml | před 6 měsíci | |
go.mod | před 6 měsíci | |
go.sum | před 6 měsíci | |
main.go | před 6 měsíci | |
publisher.go | před 6 měsíci |
可以用于视频会议等,多人实时视频场景
https://github.com/Monibuca/plugin-room
import ( _ "m7s.live/plugin/room/v4" )
默认配置如下:
room:
subscribe: # 房间作为特殊流,只订阅data track用于传输信令
subaudio: false # 默认不订阅音频
subvideo: false # 默认不订阅视频
http: # 默认使用全局http配置
listenaddr: :8080
listenaddrtls: ""
certfile: ""
keyfile: ""
cors: true
username: ""
password: ""
appname: room # 房间用于广播数据的流的AppName(StreamPath=AppName/RoomID)
size: 20 # 房间大小(最大人数)
private: {} # 私密房间配置,key是房间ID,value是密码
verify: # 入房验证远程请求
url: ""
method: ""
header: {}
通过WebSocket建立与本插件的连接,规则如下:
ws://localhost:8080/room/[roomID]/[userID]
建立连接,如果是私密房间,需要携带密码(?password=xxx){"data":{"token":"4f8990a1-e7ae-4926-81b0-a3ab191c8e3b","userList":[]},"event":"joined"}
代表进房成功,token用于发布流时的参数
{"data":{"ID":"xxx","StreamPath":"xxx"},"event":"userjoin"}
用户进房通知,data是用户信息{"userId":xxx,"event":"userleave"}
用户离房通知,userId代表离房的用户ID{"data":"[streamPath]","event":"publish","userId":"dexter"}
,用户可以选择订阅这个流{"data":"abc","event":"msg","userId":"dexter"}