Support a custom port for the insecure connection flow

Summary:
1. Remove GK.get('comet_enable_flipper_connection') which does not seem to be needed anymore
2. Support custom ports for the insecure connection flow

Reviewed By: lblasa

Differential Revision: D33632891

fbshipit-source-id: 045d6886ea94e15bff38f2f61c7d5a2c56c39859
This commit is contained in:
Andrey Goncharov
2022-01-18 05:51:51 -08:00
committed by Facebook GitHub Bot
parent c5fa91459f
commit 3865a3d9a2
3 changed files with 43 additions and 7 deletions

View File

@@ -8,7 +8,10 @@
*/ */
import {FlipperServerConfig} from 'flipper-common'; import {FlipperServerConfig} from 'flipper-common';
import {parseFlipperPorts} from './utils/environmentVariables'; import {
parseEnvironmentVariableAsNumber,
parseFlipperPorts,
} from './utils/environmentVariables';
let currentConfig: FlipperServerConfig | undefined = undefined; let currentConfig: FlipperServerConfig | undefined = undefined;
@@ -34,6 +37,7 @@ type ServerPorts = {
export function getServerPortsConfig(): { export function getServerPortsConfig(): {
serverPorts: ServerPorts; serverPorts: ServerPorts;
altServerPorts: ServerPorts; altServerPorts: ServerPorts;
browserPort: number;
} { } {
let portOverrides: ServerPorts | undefined; let portOverrides: ServerPorts | undefined;
if (process.env.FLIPPER_PORTS) { if (process.env.FLIPPER_PORTS) {
@@ -59,6 +63,17 @@ export function getServerPortsConfig(): {
} }
} }
const portBrowserOverride = parseEnvironmentVariableAsNumber(
'FLIPPER_BROWSER_PORT',
);
if (portBrowserOverride === undefined) {
console.error(
`Ignoring malformed FLIPPER_BROWSER_PORT env variable:
"${process.env.FLIPPER_BROWSER_PORT || ''}".
Example expected format: "1111".`,
);
}
return { return {
serverPorts: portOverrides ?? { serverPorts: portOverrides ?? {
insecure: 8089, insecure: 8089,
@@ -68,5 +83,6 @@ export function getServerPortsConfig(): {
insecure: 9089, insecure: 9089,
secure: 9088, secure: 9088,
}, },
browserPort: portBrowserOverride ?? 8333,
}; };
} }

View File

@@ -12,7 +12,6 @@ import {
ClientDescription, ClientDescription,
ClientQuery, ClientQuery,
isTest, isTest,
GK,
buildClientId, buildClientId,
Logger, Logger,
UninitializedClient, UninitializedClient,
@@ -147,10 +146,9 @@ class ServerController extends EventEmitter implements ServerEventsListener {
TransportType.WebSocket, TransportType.WebSocket,
); );
if (GK.get('comet_enable_flipper_connection')) { const browserPort = getServerPortsConfig().browserPort;
console.info('[conn] Browser server (ws) listening at port: ', 8333); console.info('[conn] Browser server (ws) listening at port: ', browserPort);
this.browserServer = await createBrowserServer(8333, this); this.browserServer = await createBrowserServer(browserPort, this);
}
} }
/** /**

View File

@@ -4,7 +4,7 @@ title: Running Flipper with different ports
sidebar_label: Using different ports sidebar_label: Using different ports
--- ---
## FLIPPER ports ## FLIPPER ports (mobile apps that support certificate exchange)
By default Flipper runs its servers on ports 8088 and 8089, and the mobile SDKs look for servers on those ports. By default Flipper runs its servers on ports 8088 and 8089, and the mobile SDKs look for servers on those ports.
@@ -34,6 +34,28 @@ To configure the iOS SDK for custom ports, set the FLIPPER_PORTS environment var
xcrun simctl spawn booted defaults write "Apple Global Domain" "com.facebook.flipper.ports" -string "1111,2222" xcrun simctl spawn booted defaults write "Apple Global Domain" "com.facebook.flipper.ports" -string "1111,2222"
``` ```
## FLIPPER ports (apps that do not support certificate exchange)
Flipper listens on 8333 for insecure (browser, Node.js) connections.
To run the desktop app using custom ports:
```
env FLIPPER_BROWSER_PORT=1111 ./flipper
```
or with a dev build:
```
env FLIPPER_BROWSER_PORT=1111 yarn start
```
To connect to Flipper on a different port from [js-flipper](https://github.com/facebook/flipper/tree/main/js/js-flipper), you need to override its `urlBase` when you [start it](https://github.com/facebook/flipper/blob/0993d21f3b52d38969e4d2e330eb97ec4d840a9d/js/react-flipper-example/src/FlipperTicTacToe.tsx#L19).
```ts
flipperClient.start('React Tic-Tac-Toe', { urlBase: 'localhost:1111' });
```
## METRO SERVER PORTS ## METRO SERVER PORTS
You can also setup Flipper to use a different Metro Server port (default=8081) using this environement variable: You can also setup Flipper to use a different Metro Server port (default=8081) using this environement variable: