laravel / reverb

Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications.
https://reverb.laravel.com
MIT License
1.07k stars 82 forks source link

Error WebSocket connection #212

Closed palachX closed 3 months ago

palachX commented 3 months ago

Reverb Version

1.0.0-beta13

Laravel Version

11.8.0

PHP Version

8.3

Description

When i connection to my websocket server in debug i see error:

[ERROR] Laravel\Reverb\Protocols\Pusher\Http\Controllers\PusherController::__invoke(): Argument #2 ($connection) must
be of type Laravel\Reverb\Servers\Reverb\Connection, Laravel\Reverb\Servers\Reverb\Http\Connection given,
called in C:\OSPanel\domains\otk.backend.local\src\vendor\laravel\reverb\src\Servers\Reverb\Http\Router.php on line 69

Steps To Reproduce

Start clear laravel app

Install laravel reverb

env: REVERB_APP_ID=###### REVERB_APP_KEY=####### REVERB_APP_SECRET=####### REVERB_HOST=backend.local REVERB_PORT=80 REVERB_SCHEME=http REVERB_SERVER_HOST=127.0.0.1 REVERB_SERVER_PORT=8081

Command for start: php artisan reverb:start --debug

palachX commented 3 months ago

I looked at the code and logs, and indeed on line 69 (lol) in the Laravel\Reverb\Servers\Reverb file\Http\Route is passed $connection (from line 67) whose type is Laravel\Reverb\Servers\Reverb\Http\Connection (taken from trait ClosesConnections). It is passed to the Laravel\Reverb\Protocols\Pusher class\Http\Controllers\PusherController that expects the Laravel\Reverb\Servers\Reverb\Connection class

palachX commented 3 months ago

It's my console then i connected image

palachX commented 3 months ago

Uff I change my nginx config I add

         proxy_http_version 1.1;
         proxy_set_header Host $http_host;
         proxy_set_header Scheme $scheme;
         proxy_set_header SERVER_PORT $server_port;
         proxy_set_header REMOTE_ADDR $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "Upgrade";

and it's work

location /ws/ {
         proxy_http_version 1.1;
         proxy_set_header Host $http_host;
         proxy_set_header Scheme $scheme;
         proxy_set_header SERVER_PORT $server_port;
         proxy_set_header REMOTE_ADDR $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "Upgrade";

         proxy_pass http://127.0.0.1:6001/;
    }