1

我正在尝试使用 RTCMultiConnection 测试对等方之间的实时数据连接。

设置会话/房间似乎可行,但一旦完成,同行似乎无法加入。如果我从另一个浏览器再次运行此功能,在打开会话时,它仍然说房间不存在并且它打开一个新房间,而不是加入。

channel 和 session id 是一样的,为什么 peer 找不到 session 呢?

function makeOrJoinRoom(id){
	channelid = 'channel'+id;
	roomid = 'room'+id;
	sessionMedia = {audio: false, video: false, data: true};
	
	var connection = new RTCMultiConnection(channelid);
	connection.socketURL = 'https://rtcmulticonnection.herokuapp.com:443/';
	connection.checkPresence( roomid, function(roomExists, roomid) {
		alert('checking presence...');
		alert('Room exists='+roomExists);
  		if(roomExists) {
  			alert('I am a participant');
    		connection.join({
       			 sessionid: roomid,
        		 session: sessionMedia
    			});
  		} else {
  			alert('I am the moderator');
  			connection.session =  sessionMedia;
    		connection.open({
        		sessionid: roomid
    		});
  		}
	});
}

4

1 回答 1

2

请用这个替换你的函数:

function makeOrJoinRoom(roomid) {
    var connection = new RTCMultiConnection();

    connection.session = {
        data: true
    };

    connection.socketURL = 'https://rtcmulticonnection.herokuapp.com:443/';

    alert('checking presence...');
    connection.checkPresence(roomid, function(roomExist, roomid) {
        alert('Room exists=' + roomExist);
        if (roomExist === true) {
            alert('I am a participant');
            connection.join(roomid);
        } else {
            alert('I am the moderator');
            connection.open(roomid);
        }
    });

    connection.onopen = function(event) {
        alert('WebRTC chat opened!');
    };
}

// call above function like this
makeOrJoinRoom('your-unique-room-id');
于 2017-09-04T14:33:46.187 回答