Skip to content

Commit 619ac54

Browse files
committed
Experimental ws support
1 parent b88d0e8 commit 619ac54

4 files changed

Lines changed: 215 additions & 141 deletions

File tree

app/Connections/HttpConnection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,9 @@ public function close()
3030

3131
$this->socket->close();
3232
}
33+
34+
public function getConnection(): ConnectionInterface
35+
{
36+
return $this->socket;
37+
}
3338
}

app/Http/Controllers/TunnelMessageController.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,17 @@ protected function sendRequestToClient(Request $request, ControlConnection $cont
9090

9191
$httpConnection = $this->connectionManager->storeHttpConnection($httpConnection, $requestId);
9292

93-
transform($this->passRequestThroughModifiers($request, $httpConnection), function (Request $request) use ($controlConnection, $requestId) {
94-
$controlConnection->once('proxy_ready_'.$requestId, function (ConnectionInterface $proxy) use ($request) {
93+
transform($this->passRequestThroughModifiers($request, $httpConnection), function (Request $request) use ($httpConnection, $controlConnection, $requestId) {
94+
$controlConnection->once('proxy_ready_'.$requestId, function (ConnectionInterface $proxy) use ($httpConnection, $request) {
9595
// Convert the Laravel request into a PSR7 request
9696
$psr17Factory = new Psr17Factory();
9797
$psrHttpFactory = new PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
9898
$request = $psrHttpFactory->createRequest($request);
9999

100+
$httpConnection->getConnection()->on('data', function($d) use ($proxy) {
101+
$proxy->send(new Frame($d, true, Frame::OP_BINARY));
102+
});
103+
100104
$binaryMsg = new Frame(Message::toString($request), true, Frame::OP_BINARY);
101105
$proxy->send($binaryMsg);
102106
});

composer.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"nyholm/psr7": "^1.3",
3838
"ratchet/pawl": "dev-master",
3939
"symfony/expression-language": "^5.2",
40-
"react/http": "^1.1.0",
40+
"react/http": "dev-websocket-support",
4141
"react/socket": "^1.6",
4242
"react/stream": "^1.1.1",
4343
"clue/reactphp-sqlite": "^1.7.0",
@@ -86,6 +86,10 @@
8686
"type": "vcs",
8787
"url": "https://github.com/exposedev/expose"
8888
},
89+
{
90+
"type": "vcs",
91+
"url": "https://github.com/exposedev/http"
92+
},
8993
{
9094
"type": "vcs",
9195
"url": "https://github.com/beyondcode/RFC6455",

0 commit comments

Comments
 (0)