Closed ahmedalkhairy closed 2 months ago
i have same problem
What does your Apache configuration look like?
<VirtualHost *:80> ServerName reverb.xxxxxx.com
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
ProxyPreserveHost On
RewriteEngine on RewriteCond %{SERVER_NAME} =reverb.xxxxx.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
i have also tried with another server running nginx
server { server_name reverb.sellenvo.com; root /var/www/reverb/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location /app/ {
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_pass http://0.0.0.0:8080;
proxy_read_timeout 300s; proxy_connect_timeout 75s;
access_log /var/log/nginx/app_access.log;
proxy_redirect off; }
location ~ /\.(?!well-known).* {
deny all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/reverb.xxxx.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/reverb.xxxxxx.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
} server { if ($host = reverb.sellenvo.com) { return 301 https://$host$request_uri; } # managed by Certbot
listen 80;
server_name reverb.xxxxxx.com;
return 404; # managed by Certbot
}
It's been a while since I have worked with Apache, but is part of the issue that you only have a VirtualHost running on port 80?
With Nginx, you can't use location /app/
as not every route into the Reverb server is prefixed with app
.
I have same problem. This code is work in localhost but when i push this code to the production server it will not work.. reverb connection is success but when i want to broadcast the event it throw the error
This is the connection status
my .env
BROADCAST_CONNECTION=reverb VITE_APP_NAME="${APP_NAME}"
REVERB_SERVER_HOST=127.0.0.1 REVERB_SERVER_PORT=8080
REVERB_APP_ID=920552 REVERB_APP_KEY=mop6z2fyoey59fm7l3ro REVERB_APP_SECRET=eehaek3gn748kcyfcqxq REVERB_HOST="reverb.xxxx.com" REVERB_PORT=443 REVERB_SCHEME=https
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}" VITE_REVERB_HOST="${REVERB_HOST}" VITE_REVERB_PORT="${REVERB_PORT}" VITE_REVERB_SCHEME="${REVERB_SCHEME}"
my broadcast config is
connections' => [
'reverb' => [
'driver' => 'reverb',
'key' => env('REVERB_APP_KEY'),
'secret' => env('REVERB_APP_SECRET'),
'app_id' => env('REVERB_APP_ID'),
'options' => [
'host' => env('REVERB_HOST'),
'port' => env('REVERB_PORT', 443),
'scheme' => env('REVERB_SCHEME', 'https'),
'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
],
'client_options' => [
// Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
],
],
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
'port' => env('PUSHER_PORT', 443),
'scheme' => env('PUSHER_SCHEME', 'https'),
'encrypted' => true,
'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
],
'client_options' => [
// Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
],
],
]
my event file is
namespace App\Events;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class MessageTypingEvent implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $from;
public $to;
public $type;
/**
* Create a new event instance.
*/
public function __construct($from,$to,$type)
{
$this->from = $from;
$this->to = $to;
$this->type = $type;
}
/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new PrivateChannel('message_typing'.$this->to),
];
}
}
when i call this function
public function removeReading($id)
{
MessageTypingEvent::dispatch(auth()->user()->id, $id,'stop');
}
my route is
Broadcast::channel('message_typing{id}', function($user,$id){
return (int) $user->id === (int) $id;
});
it through the error is
. {"userId":4,"exception":"[object] (Illuminate\Broadcasting\BroadcastException(code: 0): Pusher error: at /var/www/xxxx/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:164)
If you start the server with debug mode enabled (php artisan reverb:start --debug
), you might be able to see the cause.
I don't think this is related to the original issue though, so please open a new one if you are unable to track it down. Closing this issue for now due to lack of activity.
Reverb Version
1.0.0-(beta9)
Laravel Version
11.5
PHP Version
8.2.16
Description
i have a problem since announcing laravel reverb i run laravel app on ubuntu 22 server , apache2 php 8.2
reverb works good with no ssl , but when i activate ssl , it refuse to handshake
reverb config:
REVERB_SERVER_HOST=0.0.0.0 REVERB_SERVER_PORT=8080 REVERB_HOST="cp.*****.com" REVERB_PORT=443
getting error in apache logs AH00961: https: failed to enable ssl support for 127.0.0.1:8080 (localhost)
i have tried to remove ssl options , and redirect from .htaccess , always the samp
Steps To Reproduce
install laravel 11 app setup reverb config as docs activate ssl