基于 WebRTC 点对点视频通话解决方案
技术支持
- 基于 WebRTC,实现点对点视频通话
- 使用 signalr,发送即时消息
视频通话
发送即时消息
使用facade-signalr-client
发送即时消息
1
| yarn add facade-signalr-client
|
- 定义即时消息类型
1 2 3 4 5 6 7
| const NOTIFY_TYPE = { listen: 'listen', busy: 'busy', listened: 'listened', reject: 'reject', handUp: 'handUp', }
|
- 发送即时消息
1 2 3 4 5 6 7 8 9 10 11 12 13
| import signalrClient from 'facade-signalr-client'
const messageBody = JSON.stringify({ targetUserId: 'B', notifyMessage: { type: NOTIFY_TYPE.listen, }, })
signalrClient.sendMessage('SendWebRTCMessage', messageBody).then(resp => { console.log('resp:' + resp) })
|
- 接受即时消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| signalrClient.receiveMessage('ReceiveWebRTCMessage', resp => { console.log('resp:' + resp) const senderUserId = resp.senderUserId const message = JSON.parse(response.notifyMessage) if (message.type === NOTIFY_TYPE.listen) { } else if (message.type === NOTIFY_TYPE.busy) { } else if (message.type === NOTIFY_TYPE.listened) { } else if (message.type === NOTIFY_TYPE.reject) { } else if (message.type === NOTIFY_TYPE.reject) { } })
|
注意事项
媒体流必须使用 https 才能使用,或者在每个用户使用的 chrome 浏览器上加入命令:
1
| --unsafely-treat-insecure-origin-as-secure="http://192.168.0.187:8080"
|
更多关于 webrtc,可查看 webrtc 文档