Как подключить свой web-socket сервер на node.js к laravel?
Имеется веб-сокет сервер на node.js, на хосте localhost:8081. Не могу связать бэкенд laravel и фронтенд vuejs с этим сервером.
Код в config/broadcasting.php
'node-server' => [ 'driver' => 'socket.io', 'host' => 'http://localhost', 'port' => 8081 ] |
'node-server' => [ 'driver' => 'socket.io', 'host' => 'http://localhost', 'port' => 8081 ]
bootstrap.js
window.Echo = new Echo({ broadcaster: 'socket.io', host: 'http://localhost:8081' }); |
window.Echo = new Echo({ broadcaster: 'socket.io', host: 'http://localhost:8081' });
Ошибки и на фронтенде и на бэкенде говорят о том что не установлен драйвер socket.io.
Нашел информацию только для подключения через драйвер pusher, в т.ч и в документации. Но хочу подключить свой ws сервер. Нужно создавать свой драйвер? Тогда как подключиться к нему на стороне фронтенда? Спасибо
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для подключения своего web-socket сервера на Node.js к Laravel, вам потребуется использовать библиотеку socket.io. Вот пошаговая инструкция, как это сделать:
1. Установите socket.io в вашем проекте Node.js с помощью npm:
npm install socket.ionpm install socket.io
2. Создайте сервер socket.io в файле server.js:
const server = require('http').createServer(); const io = require('socket.io')(server); io.on('connection', (socket) => { console.log('A user connected'); socket.on('disconnect', () => { console.log('User disconnected'); }); }); server.listen(3000);
3. Запустите ваш web-socket сервер, выполнив команду:
node server.jsnode server.js
4. Теперь вам нужно настроить Laravel для подключения к вашему web-socket серверу. Для этого вам понадобится установить библиотеку socket.io-client:
npm install socket.io-client
5. Далее вам нужно создать скрипт в Laravel, который будет подключаться к вашему web-socket серверу. Например, в вашем контроллере или роуте Laravel:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; public function sendMessage(Request $request) { $response = Http::post('http://localhost:3000', [ 'message' => $request->input('message') ]); return response()->json(['status' => 'success']); }
6. Теперь вы можете отправлять сообщения из Laravel на ваш web-socket сервер, используя метод POST. Например, с помощью AJAX запроса из фронтенда.
Это всего лишь базовая инструкция по подключению web-socket сервера на Node.js к Laravel. Обратите внимание, что вам может потребоваться настроить сервер для работы с SSL, а также обеспечить безопасность вашего приложения. Надеюсь, данная информация будет полезной для вас. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.