이해하신것 처럼 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'
});실제 적용 코드는 아래와 같습니다.
class SocketController extends Controller{
public function sendMessage(){
$redis = Redis::connection();
$redis->publish('message','text');
return 'done';
}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;
}함께 참고하는데 도움이 될 자료를 기재드립니다.