Hi, I'm building an app that must have a real time chat and i don't want to use the pusher api.
I'm using docker-compose as dev enviroment :
version: '3.9'
services:
#php
php:
build:
context: .
target: php
args:
- APP_ENV=${APP_ENV}
environment:
- APP_ENV=${APP_ENV}
- CONTAINER_ROLE=app
working_dir: /var/www
volumes:
- ./:/var/www
ports:
- 8000:8000
depends_on:
- database
- redis
networks:
- shareit
#websocket
websocket:
build:
context: .
target: php
args:
- APP_ENV=${APP_ENV}
environment:
- APP_ENV=${APP_ENV}
- CONTAINER_ROLE=websocket
working_dir: /var/www
volumes:
- ./:/var/www
ports:
- 6001:6001
depends_on:
- database
- redis
networks:
- shareit
# #soketi
# soketi:
# image: quay.io/soketi/soketi:latest-16-alpine
# build:
# context: .
# target: php
# args:
# - APP_ENV=${APP_ENV}
# ports:
# - 6001:6001
# - 9601:9601
# environment:
# - APP_ENV=${APP_ENV}
# - CONTAINER_ROLE=websocket
# working_dir: /var/www
# volumes:
# - ./:/var/www
# depends_on:
# - database
# - redis
# networks:
# - shareit
#database
database:
image: mysql
ports:
- 3306
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
volumes:
- db-data:/var/lib/mysql
networks:
- shareit
#phpmyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: pma
links:
- database
environment:
PMA_HOST: database
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
ports:
- 8081:80
networks:
- shareit
#redis
redis:
image: redis:alpine
command: redis-server --appendonly yes --requirepass "${REDIS_PASSWORD}"
ports:
- 6379:6379
networks:
- shareit
#queue
queue:
build:
context: .
target: php
args:
- APP_ENV=${APP_ENV}
environment:
- APP_ENV=${APP_ENV}
- CONTAINER_ROLE=queue
working_dir: /var/www
volumes:
- ./:/var/www
networks:
- shareit
#node
node:
build:
context: .
target: node
volumes:
- ./:/usr/src
- ./node_modules:/usr/src/node_modules
tty: true
networks:
- shareit
volumes:
db-data: ~
networks:
shareit:
driver: bridge
I'm following a tutorial on how to use laravel webserver or soketi as pusher alternative
broadcasting.php:
'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'),
'encrypted' => false,
'useTLS' => false,
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'http'
],
websockets.php:
'apps' => [
[
'id' => env('PUSHER_APP_ID'),
'name' => env('APP_NAME'),
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'enable_client_messages' => false,
'enable_statistics' => true,
],
],
bootsrap.js:
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
wsHost: '127.0.0.1',
wsPort: 6001,
enabledTransports: ['ws', 'wss'],
forceTLS:false,
disableStats:false,
encrypted: false,
cluster:'eu',
});
The connection is ok, but when i try to send an event i get this error (i'm using the laravel-websocket debug page):
Pusher error: cURL error 7: Failed to connect to 127.0.0.1 port 6001: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://127.0.0.1:6001/apps/1567724/events?
what am i doing wrong?