아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
이민정 포즈
아하

생활

생활꿀팁

상냥한여새212
상냥한여새212

라라벨 웹소켓(pusher, redis) 문의

안녕하세요.

다름이 아닌, 라라벨에서 웹소켓 사용할때에 pusher, redis 같은 경우에는 같은 서버인 내부적으로만 사용이 가능한거죠?

nodejs <> laravel 이런 방식의 소켓 연결은 불가한거죠?

관련 내용 링크

Laravel Broadcast — pusher(X), Laravel websocket(O) 편

https://medium.com/sjk5766/laravel-broadcast-pusher-x-laravel-websocket-o-%ED%8E%B8-b48981a4178d

Laravel Broadcast — redis 편

https://medium.com/sjk5766/laravel-broadcast-redis-%ED%8E%B8-74be51464a19

    1개의 답변이 있어요!
    • 초록푸들257
      초록푸들257

      이해하신것 처럼 pusher와 redis는 PHP기반 laravel의 casting을 위한 서비스입니다.

      일반적으로 Nodejs와의 통신을 위해서는 pusher 혹은 redis를 socket.io와 페어링을 하는 방법일 것입니다.

      import Echo from "laravel-echo" window.io = require('socket.io-client'); window.Echo = new Echo({ broadcaster: 'socket.io', host: window.location.hostname + ':6001' });

      실제 적용 코드는 아래와 같습니다.

      • php

      class SocketController extends Controller{ public function sendMessage(){ $redis = Redis::connection(); $redis->publish('message','text'); return 'done'; }

      • javascript (nodejs)

      module.exports = function(io){ var express = require('express'); var router = express.Router(); var redis = require('redis'); // routing(생략) router.get( ... ... ) // socket io.on('connection',function(socket){ var redisClient = redis.createClient(); redisClient.subscribe('message'); redisClient.on('message',function(message){ socket.emit(channel, message); }); }); return router; }

      함께 참고하는데 도움이 될 자료를 기재드립니다.