OpenVidu / openvidu-tutorials

OpenVidu tutorials to get started
http://openvidu.io/tutorials
Apache License 2.0
228 stars 255 forks source link

openvidu-android is missing "reconnect" param on RPC prepareReceiveVideoFrom #157

Closed dofmind closed 3 years ago

dofmind commented 3 years ago

openvidu-android is missing "reconnect" param on RPC prepareReceiveVideoFrom, so it causes below errors on openvidu-server v2.18.0

openvidu-server_1  | java.lang.RuntimeException: Request element 'reconnect' is missing in method 'prepareReceiveVideoFrom'. CHECK THAT 'openvidu-server' AND 'openvidu-browser' SHARE THE SAME VERSION NUMBER
openvidu-server_1  |    at io.openvidu.server.rpc.RpcHandler.getBooleanParam(RpcHandler.java:812)
openvidu-server_1  |    at io.openvidu.server.rpc.RpcHandler.prepareReceiveVideoFrom(RpcHandler.java:361)
openvidu-server_1  |    at io.openvidu.server.rpc.RpcHandler.handleRequest(RpcHandler.java:131)
openvidu-server_1  |    at org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)
openvidu-server_1  |    at org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)
openvidu-server_1  |    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
openvidu-server_1  |    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
openvidu-server_1  |    at java.base/java.lang.Thread.run(Thread.java:829)

To solve this problem, below patch needs,

diff --git a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java
index 4e15d13a..774cb374 100644
--- a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java
+++ b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java
@@ -211,6 +211,7 @@ public class CustomWebSocket extends AsyncTask<SessionActivity, Void, Void> impl
     public void prepareReceiveVideoFrom(RemoteParticipant remoteParticipant, String streamId) {
         Map<String, String> prepareReceiveVideoFromParams = new HashMap<>();
         prepareReceiveVideoFromParams.put("sender", streamId);
+        prepareReceiveVideoFromParams.put("reconnect", "false");
         this.IDS_PREPARERECEIVEVIDEO.put(this.sendJson(JsonConstants.PREPARERECEIVEVIDEO_METHOD, prepareReceiveVideoFromParams), new Pair<>(remoteParticipant.getConnectionId(), streamId));
     }
pabloFuente commented 3 years ago

Yes, openvidu-android app is not compatible with openvidu-server 2.18.0 yet. We are working on it, but in the meantime it should work against OpenVidu 2.17.0

pabloFuente commented 3 years ago

Already fixed in release v2.18.0