0.12.304 • Published 12 months ago

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

Weekly downloads
-
License
MIT
Repository
github
Last release
12 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

1 year ago

0.12.296

1 year ago

0.12.299

12 months ago

0.12.298

1 year ago

0.12.293

1 year ago

0.12.292

1 year ago

0.12.295

1 year ago

0.12.294

1 year ago

0.12.291

1 year ago

0.12.290

1 year ago

0.12.289

1 year ago

0.12.286

1 year ago

0.12.285

1 year ago

0.12.288

1 year ago

0.12.287

1 year ago

0.12.282

1 year ago

0.12.281

1 year ago

0.12.284

1 year ago

0.12.283

1 year ago

0.12.280

1 year ago

0.12.279

1 year ago

0.12.278

1 year ago

0.12.275

1 year ago

0.12.274

1 year ago

0.12.277

1 year ago

0.12.276

1 year 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

2 years ago

0.12.234

2 years ago

0.12.237

1 year ago

0.12.236

1 year ago

0.12.231

2 years ago

0.12.230

2 years ago

0.12.233

2 years ago

0.12.232

2 years ago

0.12.239

1 year ago

0.12.238

1 year ago

0.12.228

2 years ago

0.12.227

2 years ago

0.12.229

2 years ago

0.12.301

12 months ago

0.12.300

12 months ago

0.12.303

12 months ago

0.12.302

12 months ago

0.12.304

12 months ago

0.12.226

2 years ago

0.12.225

2 years ago

0.12.224

2 years ago

0.12.223

2 years ago

0.12.222

2 years ago

0.12.221

2 years ago

0.12.220

2 years ago

0.12.219

2 years ago

0.12.218

2 years ago

0.12.217

2 years ago

0.12.216

2 years ago

0.12.213

2 years ago

0.12.212

2 years ago

0.12.215

2 years ago

0.12.214

2 years 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

3 years ago

0.12.75

3 years ago

0.12.76

3 years ago

0.12.77

3 years ago

0.12.70

3 years ago

0.12.71

3 years ago

0.12.72

3 years ago

0.12.73

3 years ago

0.12.78

3 years ago

0.12.79

3 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

3 years ago

0.12.55

3 years ago

0.12.50

3 years ago

0.12.51

3 years ago

0.12.56

3 years ago

0.12.57

3 years ago

0.12.58

3 years ago

0.12.59

3 years ago

0.12.63

3 years ago

0.12.64

3 years ago

0.12.65

3 years ago

0.12.66

3 years ago

0.12.60

3 years ago

0.12.61

3 years ago

0.12.62

3 years ago

0.12.67

3 years ago

0.12.68

3 years ago

0.12.69

3 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

4 years ago

0.5.3

4 years ago

0.5.6

3 years ago

0.5.5

4 years ago

0.5.0

4 years ago

0.5.2

4 years ago

0.5.1

4 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

4 years ago

0.3.0

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.3

4 years ago

0.5.8

3 years ago

0.5.7

3 years ago

0.5.9

3 years ago

0.4.5

4 years ago

0.4.4

4 years ago

0.4.7

4 years ago

0.4.6

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.4.3

4 years ago

0.4.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.6

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.5

4 years ago

0.2.4

4 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

5 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

5 years ago

0.1.7

4 years ago

0.0.27

5 years ago

0.0.28

5 years ago

0.0.29

5 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

5 years ago

0.0.21

5 years ago

0.0.22

5 years ago

0.0.23

5 years ago

0.0.24

5 years ago

0.0.20

5 years ago

0.0.19

5 years ago

0.0.15

5 years ago

0.0.16

5 years ago

0.0.17

5 years ago

0.0.18

5 years ago

0.0.10

5 years ago

0.0.11

5 years ago

0.0.12

5 years ago

0.0.13

5 years ago

0.0.14

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5-7

5 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

5 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