아례 redisInfo 정보에 알맞게 넣으시면 됩니다.
ex)
host: '3.86.7.129',
port: 6379,
password : '1111'
- 이부분에 경우 attendAuth라는 채널을 구독하고 메세지 채널에 맞는 이벤트 메시지를 전송합니다
redis.subscribe('attendAuth');
redis.on("message", function(channel, message) {
var data = JSON.parse(message);
switch(channel) {
case 'attendAuth':
try {
console.log('attendAuth channel');
io.sockets.emit(data.socketCh, {'data' : {
socket_ch : data.socketCh
, userId : data.userId
}});
}catch (e) {
console.log(e);
}
break;
}
});
const express = require('express');
const app = express();
var port = 6001;
var redisInfo = {
host: ${host},
port: ${port},
password : ${password}
};
const server = app.listen(port, function() {
console.log('server running on port '+port);
});
const io = require('socket.io')(server, {
cors: {
origin: '*',
}
});
io.on('connection', function(socket) {
socket.on('SEND_MESSAGE', function(data) {
console.log(data);
io.emit('MESSAGE', data)
});
});
_redis = require("redis");
redis = _redis.createClient(redisInfo.port, redisInfo.host)
redis.auth(redisInfo.password);
redis.subscribe('attendAuth');
redis.on("message", function(channel, message) {
var data = JSON.parse(message);
switch(channel) {
case 'attendAuth':
try {
console.log('attendAuth channel');
io.sockets.emit(data.socketCh, {'data' : {
socket_ch : data.socketCh
, userId : data.userId
}});
}catch (e) {
console.log(e);
}
break;
}
});
예시
- VIRTUAL_HOST=sock.user156.com
- VIRTUAL_PORT=6001
version: '3.7'
services:
menu-socket:
build:
context: ./
dockerfile: Dockerfile
container_name: menu-socket-container
restart: always
image: menu-socket-app
volumes:
- ./:/src/app
environment:
- VIRTUAL_HOST=${도메인 주소}
- VIRTUAL_PORT=${포트번호}
networks:
- nginx-proxy
networks:
nginx-proxy:
name: nginx-proxy
$ Dockerfile
예시
EXPOSE 6001
FROM node:12.16.3-alpine3.11
ENV SRCDIR /src
RUN mkdir -p $SRCDIR/app && chown -R node:node $SRCDIR
WORKDIR $SRCDIR
COPY ./package.json $SRCDIR
RUN npm install
COPY . $SRCDIR
EXPOSE ${6001}
WORKDIR $SRCDIR/app
CMD ["node", "app.js"]
{
"name": "node",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"debug": "~2.6.9",
"ejs": "~2.5.7",
"express": "~4.16.0",
"redis": "^3.1.2",
"request": "^2.88.0",
"socket.io": "= 2.0.4",
"uuid": "^2.0.2",
"vue-socket.io": "^3.0.10"
}
}
$ docker network create nginx-proxy
$ docker-compose up -d --build