Reactjs Socket.io和简单对等无效信号数据(如何通过简单对等远程连接)
我正在尝试远程连接两个浏览器。据我所知,我需要使用socket.io(或类似)来启动两个浏览器之间的连接,然后webRTC将处理两个客户端之间的连接 我使用的是ReactJS、Express、Socket.io和simplepeer 我已经有了一个功能,可以创建最多2人的房间(1对1) 一旦会议室启动,两名参与者已经通过socket.io连接,我就需要连接他们的视频流 逻辑:Reactjs Socket.io和简单对等无效信号数据(如何通过简单对等远程连接),reactjs,express,socket.io,simple-peer,Reactjs,Express,Socket.io,Simple Peer,我正在尝试远程连接两个浏览器。据我所知,我需要使用socket.io(或类似)来启动两个浏览器之间的连接,然后webRTC将处理两个客户端之间的连接 我使用的是ReactJS、Express、Socket.io和simplepeer 我已经有了一个功能,可以创建最多2人的房间(1对1) 一旦会议室启动,两名参与者已经通过socket.io连接,我就需要连接他们的视频流 逻辑: 选择发起人(room.particpants[0])发送报价 每次有人加入时,io.emit将发送到房间内所有新更新的
- 选择发起人(room.particpants[0])发送报价
- 每次有人加入时,io.emit将发送到房间内所有新更新的参与者列表
- 连接同行
socket.on('send-offers', data => {
participants = data.participants
let initiator = participants[0]
// Send to everyone but the initiator (2cnd participant for now)
io.to(participants[1]).emit('offer', data)
})
client.js
socket.on('joined', async data => {
console.log(`Someone has joined the room`)
// Have the initial connector send out the offer signal
if (socket.id === data.participants[0]) {
let master = await new Peer({ initiator: true, trickle: false })
let payload = { participants: data.participants, signal: master }
socket.emit('send-offers', payload)
master.on('signal', data => {
console.log('master received signal')
console.log(data)
})
}
})
socket.on('offer', data => {
console.log('peer socket io message received')
let client = new Peer()
client.signal(data.signal)
})
其思想是,当客户端1(启动器)和客户端2(客户端)通过socket.io相互连接时,它们必须连接视频流数据
- 客户端1向服务器发送套接字消息以发送报价。它通过
作为信号字段master
- 节点接收该消息,并向除客户机1之外的所有客户机发送带有数据的offer消息
- 只有客户端2通过
socket.on('offer')
- 使用简单对等点创建新对等点
- 据我所知,client.signal从master接收信号数据,因此它可以接受它的流
- 尽管如此,master.on(“信号”)仍然收到来自客户2的报价