0.12.304 • Published 10 months ago

@react-native-windows/automation-channel v0.12.304

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@react-native-windows/automation-channel

@react-native-windows/automation-channel adds support for remote procedure calls from a node client to react-native-windows server on the same machine.

Example

node app

import {waitForConnection} from '@react-native-windows/automation-channel'

const rpcConnection = await waitForConnection({port: 8305});
const result = await rpcConnection.invoke("add", [2, 2])

react-native-windows app

#include "winrt/AutomationChannel.Server.h"

// AutomationChannel::CommandHandler allows registering methods
winrt::AutomationChannel::CommandHandler handler();

// Binding to a simple method
handler.BindOperation("add", [](const JSonValue& params) noexcept {
  auto addends = params.GetArray();

  auto sum = 0;
  for (const auto& addend : addends) {
    sum += addend.GetNumber();
  }
  
  return JSonValue::CreateNumberValue(sum);
});

// Methods may be bound to IAsyncAction or IAsyncOperation
handler.BindAsyncAction("performAsyncOperation", [](const JSonValue& params) noexcept -> IAsyncAction {
  co_await performLongOperation();
});

// Start server
winrt::AutomationChannel::Server rpcServer(handler);
co_await rpcServer.ProcessAllClientRequests(8305, 50ms);

Installing

@react-native-windows/automation-channel supports auto-linking to allow installation into react-native-windows applications.

Architecture

Reverse TCP server: Traditional server/client roles are reversed, where the node client creates a TCP server to connect to. This helps to bypass restrictions on inbound loopback traffic to UWP apps. This low-effort solution allows bypassing the UWP AppContainer.

Alternative approaches

  • Named pipe created inside AppContainer: Node provides first-class support for named-pipes through net.socket. It is possible to create a named pipe from a UWP process which a Win32 process can then connect to, allowing traditional server/client roles. Doing this requires locating the resource local to the AppContainer, using an API like GetAppContainerNamedObjectPath. This likely requires FFI (with node-gyp) or native extenssions.
  • Proxy to full-trust process The RNW application could create a full-trust process which proxies from TCP to named-pipe internal to the AppContainer. This bypasses inbound loopback restrictions, but adds complexity of deploying a separate process, requires two IPC channels.

Protocol

@react-native-windows/automation-channel uses a TCP channel, sending JSON messages across the wire prefixed with length. Messages themselves are conformant to the JSON-RPC version 2.0 protocol.

0.12.297

11 months ago

0.12.296

11 months ago

0.12.299

11 months ago

0.12.298

11 months ago

0.12.293

11 months ago

0.12.292

11 months ago

0.12.295

11 months ago

0.12.294

11 months ago

0.12.291

11 months ago

0.12.290

11 months ago

0.12.289

11 months ago

0.12.286

12 months ago

0.12.285

12 months ago

0.12.288

11 months ago

0.12.287

12 months ago

0.12.282

12 months ago

0.12.281

12 months ago

0.12.284

12 months ago

0.12.283

12 months ago

0.12.280

12 months ago

0.12.279

12 months ago

0.12.278

12 months ago

0.12.275

1 year ago

0.12.274

1 year ago

0.12.277

12 months ago

0.12.276

12 months ago

0.12.271

1 year ago

0.12.270

1 year ago

0.12.273

1 year ago

0.12.272

1 year ago

0.12.268

1 year ago

0.12.267

1 year ago

0.12.269

1 year ago

0.12.264

1 year ago

0.12.263

1 year ago

0.12.266

1 year ago

0.12.265

1 year ago

0.12.260

1 year ago

0.12.262

1 year ago

0.12.261

1 year ago

0.12.257

1 year ago

0.12.256

1 year ago

0.12.259

1 year ago

0.12.258

1 year ago

0.12.253

1 year ago

0.12.252

1 year ago

0.12.255

1 year ago

0.12.254

1 year ago

0.12.251

1 year ago

0.12.250

1 year ago

0.12.246

1 year ago

0.12.245

1 year ago

0.12.248

1 year ago

0.12.247

1 year ago

0.12.242

1 year ago

0.12.241

1 year ago

0.12.244

1 year ago

0.12.243

1 year ago

0.12.249

1 year ago

0.12.240

1 year ago

0.12.235

1 year ago

0.12.234

1 year ago

0.12.237

1 year ago

0.12.236

1 year ago

0.12.231

1 year ago

0.12.230

1 year ago

0.12.233

1 year ago

0.12.232

1 year ago

0.12.239

1 year ago

0.12.238

1 year ago

0.12.228

1 year ago

0.12.227

1 year ago

0.12.229

1 year ago

0.12.301

10 months ago

0.12.300

11 months ago

0.12.303

10 months ago

0.12.302

10 months ago

0.12.304

10 months ago

0.12.226

1 year ago

0.12.225

1 year ago

0.12.224

1 year ago

0.12.223

1 year ago

0.12.222

1 year ago

0.12.221

1 year ago

0.12.220

1 year ago

0.12.219

1 year ago

0.12.218

1 year ago

0.12.217

1 year ago

0.12.216

1 year ago

0.12.213

1 year ago

0.12.212

1 year ago

0.12.215

1 year ago

0.12.214

1 year ago

0.12.211

2 years ago

0.12.210

2 years ago

0.12.209

2 years ago

0.12.208

2 years ago

0.12.207

2 years ago

0.12.206

2 years ago

0.12.205

2 years ago

0.12.204

2 years ago

0.12.203

2 years ago

0.12.202

2 years ago

0.12.201

2 years ago

0.12.200

2 years ago

0.12.199

2 years ago

0.12.198

2 years ago

0.12.197

2 years ago

0.12.194

2 years ago

0.12.193

2 years ago

0.12.196

2 years ago

0.12.195

2 years ago

0.12.190

2 years ago

0.12.192

2 years ago

0.12.191

2 years ago

0.12.187

2 years ago

0.12.186

2 years ago

0.12.189

2 years ago

0.12.188

2 years ago

0.12.183

2 years ago

0.12.182

2 years ago

0.12.185

2 years ago

0.12.184

2 years ago

0.12.181

2 years ago

0.12.180

2 years ago

0.12.179

2 years ago

0.12.176

2 years ago

0.12.175

2 years ago

0.12.178

2 years ago

0.12.177

2 years ago

0.12.172

2 years ago

0.12.171

2 years ago

0.12.174

2 years ago

0.12.173

2 years ago

0.12.170

2 years ago

0.12.169

2 years ago

0.12.168

2 years ago

0.12.165

2 years ago

0.12.164

2 years ago

0.12.167

2 years ago

0.12.166

2 years ago

0.12.161

2 years ago

0.12.160

2 years ago

0.12.163

2 years ago

0.12.162

2 years ago

0.12.158

2 years ago

0.12.159

2 years ago

0.12.157

2 years ago

0.12.156

2 years ago

0.12.155

2 years ago

0.12.154

2 years ago

0.12.153

2 years ago

0.12.152

2 years ago

0.12.151

2 years ago

0.12.150

2 years ago

0.12.149

2 years ago

0.12.148

2 years ago

0.12.147

2 years ago

0.12.146

2 years ago

0.12.145

2 years ago

0.12.144

2 years ago

0.12.143

2 years ago

0.12.142

2 years ago

0.12.141

2 years ago

0.12.140

2 years ago

0.12.139

2 years ago

0.12.138

2 years ago

0.12.136

2 years ago

0.12.137

2 years ago

0.12.135

2 years ago

0.12.134

2 years ago

0.12.133

2 years ago

0.12.132

2 years ago

0.12.131

2 years ago

0.12.130

2 years ago

0.12.129

2 years ago

0.12.127

2 years ago

0.12.128

2 years ago

0.12.126

2 years ago

0.12.125

2 years ago

0.12.124

2 years ago

0.12.123

2 years ago

0.12.122

2 years ago

0.12.121

2 years ago

0.12.120

2 years ago

0.12.119

2 years ago

0.12.118

2 years ago

0.12.117

2 years ago

0.12.114

2 years ago

0.12.116

2 years ago

0.12.115

2 years ago

0.12.113

2 years ago

0.12.112

2 years ago

0.12.111

2 years ago

0.12.110

2 years ago

0.12.109

2 years ago

0.12.108

2 years ago

0.12.107

2 years ago

0.12.106

2 years ago

0.12.105

2 years ago

0.12.104

2 years ago

0.12.103

2 years ago

0.12.102

2 years ago

0.12.101

2 years ago

0.12.100

2 years ago

0.12.97

2 years ago

0.12.98

2 years ago

0.12.99

2 years ago

0.12.96

2 years ago

0.12.95

2 years ago

0.12.94

2 years ago

0.12.93

2 years ago

0.12.92

2 years ago

0.12.91

2 years ago

0.12.90

2 years ago

0.12.89

2 years ago

0.12.88

2 years ago

0.12.87

2 years ago

0.12.86

2 years ago

0.12.85

2 years ago

0.12.84

2 years ago

0.12.83

2 years ago

0.12.82

2 years ago

0.12.10

3 years ago

0.12.11

3 years ago

0.12.16

3 years ago

0.12.17

3 years ago

0.12.18

3 years ago

0.12.19

3 years ago

0.12.12

3 years ago

0.12.13

3 years ago

0.12.14

3 years ago

0.12.15

3 years ago

0.12.20

3 years ago

0.12.21

3 years ago

0.12.22

3 years ago

0.12.27

3 years ago

0.12.28

3 years ago

0.12.29

3 years ago

0.12.23

3 years ago

0.12.24

3 years ago

0.12.25

3 years ago

0.12.26

3 years ago

0.12.74

2 years ago

0.12.75

2 years ago

0.12.76

2 years ago

0.12.77

2 years ago

0.12.70

2 years ago

0.12.71

2 years ago

0.12.72

2 years ago

0.12.73

2 years ago

0.12.78

2 years ago

0.12.79

2 years ago

0.12.81

2 years ago

0.12.80

2 years ago

0.12.30

3 years ago

0.12.31

3 years ago

0.12.32

3 years ago

0.12.33

3 years ago

0.12.38

3 years ago

0.12.39

3 years ago

0.12.34

3 years ago

0.12.35

3 years ago

0.12.36

3 years ago

0.12.37

3 years ago

0.12.41

3 years ago

0.12.42

3 years ago

0.12.43

3 years ago

0.12.44

3 years ago

0.12.40

3 years ago

0.12.49

3 years ago

0.12.45

3 years ago

0.12.46

3 years ago

0.12.47

3 years ago

0.12.48

3 years ago

0.12.52

3 years ago

0.12.53

3 years ago

0.12.54

2 years ago

0.12.55

2 years ago

0.12.50

3 years ago

0.12.51

3 years ago

0.12.56

2 years ago

0.12.57

2 years ago

0.12.58

2 years ago

0.12.59

2 years ago

0.12.63

2 years ago

0.12.64

2 years ago

0.12.65

2 years ago

0.12.66

2 years ago

0.12.60

2 years ago

0.12.61

2 years ago

0.12.62

2 years ago

0.12.67

2 years ago

0.12.68

2 years ago

0.12.69

2 years ago

0.12.9

3 years ago

0.10.18

3 years ago

0.10.19

3 years ago

0.10.20

3 years ago

0.10.21

3 years ago

0.11.0

3 years ago

0.11.1

3 years ago

0.11.2

3 years ago

0.11.3

3 years ago

0.11.4

3 years ago

0.11.5

3 years ago

0.11.6

3 years ago

0.11.7

3 years ago

0.12.7

3 years ago

0.12.8

3 years ago

0.12.0

3 years ago

0.12.1

3 years ago

0.12.2

3 years ago

0.12.3

3 years ago

0.12.4

3 years ago

0.12.5

3 years ago

0.12.6

3 years ago

0.10.9

3 years ago

0.10.1

3 years ago

0.10.2

3 years ago

0.10.3

3 years ago

0.10.4

3 years ago

0.10.5

3 years ago

0.10.6

3 years ago

0.10.7

3 years ago

0.10.8

3 years ago

0.10.0

3 years ago

0.10.14

3 years ago

0.10.15

3 years ago

0.10.16

3 years ago

0.10.17

3 years ago

0.10.10

3 years ago

0.10.11

3 years ago

0.10.12

3 years ago

0.10.13

3 years ago

0.9.12

3 years ago

0.9.13

3 years ago

0.9.14

3 years ago

0.9.15

3 years ago

0.9.10

3 years ago

0.9.11

3 years ago

0.9.16

3 years ago

0.9.17

3 years ago

0.9.18

3 years ago

0.9.9

3 years ago

0.7.1

3 years ago

0.9.8

3 years ago

0.9.7

3 years ago

0.9.4

3 years ago

0.9.3

3 years ago

0.9.6

3 years ago

0.9.5

3 years ago

0.8.0

3 years ago

0.9.0

3 years ago

0.9.2

3 years ago

0.9.1

3 years ago

0.5.10

3 years ago

0.5.11

3 years ago

0.5.18

3 years ago

0.5.19

3 years ago

0.5.16

3 years ago

0.5.17

3 years ago

0.5.14

3 years ago

0.5.15

3 years ago

0.5.12

3 years ago

0.5.13

3 years ago

0.7.0

3 years ago

0.1.132

4 years ago

0.1.131

4 years ago

0.6.7

3 years ago

0.6.6

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.5.6

3 years ago

0.5.5

3 years ago

0.5.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.5.21

3 years ago

0.5.20

3 years ago

0.6.3

3 years ago

0.6.2

3 years ago

0.6.5

3 years ago

0.6.4

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.4.8

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.3

3 years ago

0.5.8

3 years ago

0.5.7

3 years ago

0.5.9

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.7

3 years ago

0.4.6

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.6

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.1.129

4 years ago

0.1.128

4 years ago

0.1.125

4 years ago

0.1.124

4 years ago

0.1.127

4 years ago

0.1.126

4 years ago

0.1.121

4 years ago

0.1.120

4 years ago

0.1.123

4 years ago

0.1.122

4 years ago

0.1.130

4 years ago

0.1.118

4 years ago

0.1.117

4 years ago

0.1.119

4 years ago

0.1.114

4 years ago

0.1.113

4 years ago

0.1.116

4 years ago

0.1.115

4 years ago

0.1.110

4 years ago

0.1.112

4 years ago

0.1.111

4 years ago

0.1.96

4 years ago

0.1.97

4 years ago

0.1.98

4 years ago

0.1.99

4 years ago

0.1.90

4 years ago

0.1.91

4 years ago

0.1.92

4 years ago

0.1.93

4 years ago

0.1.94

4 years ago

0.1.95

4 years ago

0.1.87

4 years ago

0.1.88

4 years ago

0.1.89

4 years ago

0.1.107

4 years ago

0.1.106

4 years ago

0.1.109

4 years ago

0.1.108

4 years ago

0.1.103

4 years ago

0.1.102

4 years ago

0.1.105

4 years ago

0.1.104

4 years ago

0.1.101

4 years ago

0.1.100

4 years ago

0.1.52

4 years ago

0.1.53

4 years ago

0.1.54

4 years ago

0.1.55

4 years ago

0.1.56

4 years ago

0.1.57

4 years ago

0.1.58

4 years ago

0.1.59

4 years ago

0.1.50

4 years ago

0.1.51

4 years ago

0.1.85

4 years ago

0.1.86

4 years ago

0.1.80

4 years ago

0.1.81

4 years ago

0.1.82

4 years ago

0.1.83

4 years ago

0.1.84

4 years ago

0.1.74

4 years ago

0.1.75

4 years ago

0.1.76

4 years ago

0.1.77

4 years ago

0.1.78

4 years ago

0.1.79

4 years ago

0.1.70

4 years ago

0.1.71

4 years ago

0.1.72

4 years ago

0.1.73

4 years ago

0.1.63

4 years ago

0.1.64

4 years ago

0.1.65

4 years ago

0.1.66

4 years ago

0.1.67

4 years ago

0.1.68

4 years ago

0.1.69

4 years ago

0.1.60

4 years ago

0.1.61

4 years ago

0.1.62

4 years ago

0.1.49

4 years ago

0.1.41

4 years ago

0.1.42

4 years ago

0.1.43

4 years ago

0.1.44

4 years ago

0.1.45

4 years ago

0.1.46

4 years ago

0.1.47

4 years ago

0.1.48

4 years ago

0.1.40

4 years ago

0.1.38

4 years ago

0.1.39

4 years ago

0.1.30

4 years ago

0.1.31

4 years ago

0.1.32

4 years ago

0.1.33

4 years ago

0.1.34

4 years ago

0.1.35

4 years ago

0.1.36

4 years ago

0.1.37

4 years ago

0.1.27

4 years ago

0.1.28

4 years ago

0.1.29

4 years ago

0.1.20

4 years ago

0.1.21

4 years ago

0.1.22

4 years ago

0.1.23

4 years ago

0.1.24

4 years ago

0.1.25

4 years ago

0.1.26

4 years ago

0.1.16

4 years ago

0.1.17

4 years ago

0.1.18

4 years ago

0.1.19

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.12

4 years ago

0.1.13

4 years ago

0.1.14

4 years ago

0.1.15

4 years ago

0.1.8

4 years ago

0.1.9

4 years ago

0.0.30

4 years ago

0.0.31

4 years ago

0.0.32

4 years ago

0.0.33

4 years ago

0.0.34

4 years ago

0.0.35

4 years ago

0.1.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.0.26

4 years ago

0.1.7

4 years ago

0.0.27

4 years ago

0.0.28

4 years ago

0.0.29

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.2-0

4 years ago

0.0.25

4 years ago

0.0.21

4 years ago

0.0.22

4 years ago

0.0.23

4 years ago

0.0.24

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5-7

4 years ago

0.0.5-6

5 years ago

0.0.5-5

5 years ago

0.0.5-4

5 years ago

0.0.5

4 years ago

0.0.5-3

5 years ago

0.0.5-2

5 years ago

0.0.5-1

5 years ago

0.0.5-0

5 years ago

0.0.4

5 years ago

0.0.3-12

5 years ago

0.0.3-11

5 years ago

0.0.3-10

5 years ago

0.0.3-9

5 years ago

0.0.3-8

5 years ago

0.0.3-7

5 years ago

0.0.3-5

5 years ago

0.0.3-4

5 years ago

0.0.3-6

5 years ago

0.0.3-3

5 years ago

0.0.3-1

5 years ago

0.0.3-2

5 years ago

0.0.3-0

5 years ago

0.0.2

5 years ago

0.0.2-0

5 years ago

0.0.1

5 years ago