Some progress in websockets communication

This commit is contained in:
Mario Danic 2018-10-13 22:39:46 +02:00
parent 72d3f5ef66
commit 53bc42fbea
4 changed files with 28 additions and 6 deletions

View File

@ -76,6 +76,7 @@ import com.nextcloud.talk.models.json.signaling.Signaling;
import com.nextcloud.talk.models.json.signaling.SignalingOverall;
import com.nextcloud.talk.models.json.signaling.settings.IceServer;
import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall;
import com.nextcloud.talk.models.json.websocket.RoomOverallWebSocketMessage;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.MagicFlipView;
import com.nextcloud.talk.utils.NotificationUtils;
@ -1181,7 +1182,8 @@ public class CallController extends BaseController {
public void onMessageEvent(WebSocketCommunicationEvent webSocketCommunicationEvent) {
if (webSocketCommunicationEvent.getType().equals("hello")) {
callSession = webSocketClient.getSessionId();
MagicPeerConnectionWrapper magicPeerConnectionWrapper = alwaysGetPeerConnectionWrapperForSessionId(callSession);
webSocketClient.joinRoomWithRoomId(roomToken);
//MagicPeerConnectionWrapper magicPeerConnectionWrapper = alwaysGetPeerConnectionWrapperForSessionId(callSession);
} else if (webSocketCommunicationEvent.equals("MCUPeerReady")) {
}
}
@ -1339,6 +1341,9 @@ public class CallController extends BaseController {
@Override
public void onNext(GenericOverall genericOverall) {
if (isMultiSession) {
if (externalSignalingServer != null) {
webSocketClient.joinRoomWithRoomId("");
}
if (getActivity() != null) {
getActivity().finish();
}
@ -1371,6 +1376,10 @@ public class CallController extends BaseController {
@Override
public void onNext(GenericOverall genericOverall) {
if (externalSignalingServer != null) {
webSocketClient.joinRoomWithRoomId("");
}
if (getActivity() != null) {
getActivity().finish();
}

View File

@ -33,5 +33,5 @@ import lombok.Data;
@Parcel
public class RoomOverallWebSocketMessage extends BaseWebSocketMessage {
@JsonField(name = "room")
RoomOverallWebSocketMessage roomOverallWebSocketMessage;
RoomWebSocketMessage roomWebSocketMessage;
}

View File

@ -89,10 +89,6 @@ public class MagicPeerConnectionWrapper {
if (peerConnection != null) {
peerConnection.addStream(localMediaStream);
if (hasMCU) {
EventBus.getDefault().post(new WebSocketCommunicationEvent("MCUPeerReady", null));
}
if (hasInitiated || hasMCU) {
DataChannel.Init init = new DataChannel.Init();
init.negotiated = false;

View File

@ -27,10 +27,13 @@ import com.bluelinelabs.logansquare.LoganSquare;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.WebSocketCommunicationEvent;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.models.json.rooms.RoomOverall;
import com.nextcloud.talk.models.json.websocket.BaseWebSocketMessage;
import com.nextcloud.talk.models.json.websocket.CallOverallWebSocketMessage;
import com.nextcloud.talk.models.json.websocket.HelloResponseOverallWebSocketMessage;
import com.nextcloud.talk.models.json.websocket.HelloResponseWebSocketMessage;
import com.nextcloud.talk.models.json.websocket.RoomOverallWebSocketMessage;
import com.nextcloud.talk.models.json.websocket.RoomWebSocketMessage;
import org.greenrobot.eventbus.EventBus;
@ -154,4 +157,18 @@ public class MagicWebSocketInstance extends WebSocketListener {
public WebSocket getWebSocket() {
return webSocket;
}
public void joinRoomWithRoomId(String roomId) {
RoomOverallWebSocketMessage roomOverallWebSocketMessage = new RoomOverallWebSocketMessage();
roomOverallWebSocketMessage.setType("room");
RoomWebSocketMessage roomWebSocketMessage = new RoomWebSocketMessage();
roomWebSocketMessage.setRoomId(roomId);
roomWebSocketMessage.setSessiondId(sessionId);
roomOverallWebSocketMessage.setRoomWebSocketMessage(roomWebSocketMessage);
try {
webSocket.send(LoganSquare.serialize(roomOverallWebSocketMessage));
} catch (IOException e) {
Log.e(TAG, "Failed to serialize room overall websocket message");
}
}
}