Extract PackagerConnectionSettings to ensure easier reusability of PackagerConnection module

Reviewed By: cwdick

Differential Revision: D4689535

fbshipit-source-id: f698837f407a03bf91521cc5e921c66f5755e6e0
This commit is contained in:
Lukas Piatkowski
2017-03-17 09:55:23 -07:00
committed by Facebook Github Bot
parent 50ff7167cb
commit 60142adc72
8 changed files with 132 additions and 65 deletions

View File

@@ -13,7 +13,10 @@ import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
import android.net.Uri;
import com.facebook.common.logging.FLog;
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
@@ -26,6 +29,7 @@ import org.json.JSONObject;
*/
final public class JSPackagerClient implements ReconnectingWebSocket.MessageCallback {
private static final String TAG = JSPackagerClient.class.getSimpleName();
private static final String PACKAGER_CONNECTION_URL_FORMAT = "ws://%s/message?device=%s&app=%s&context=%s";
private static final int PROTOCOL_VERSION = 2;
public class Responder {
@@ -83,8 +87,18 @@ final public class JSPackagerClient implements ReconnectingWebSocket.MessageCall
private ReconnectingWebSocket mWebSocket;
private Map<String, RequestHandler> mRequestHandlers;
public JSPackagerClient(String url, Map<String, RequestHandler> requestHandlers) {
public JSPackagerClient(String clientId, PackagerConnectionSettings settings, Map<String, RequestHandler> requestHandlers) {
super();
Uri.Builder builder = new Uri.Builder();
builder.scheme("ws")
.encodedAuthority(settings.getDebugServerHost())
.appendPath("message")
.appendQueryParameter("device", AndroidInfoHelpers.getFriendlyDeviceName())
.appendQueryParameter("app", settings.getPackageName())
.appendQueryParameter("clientid", clientId);
String url = builder.build().toString();
mWebSocket = new ReconnectingWebSocket(url, this);
mRequestHandlers = requestHandlers;
}