server.js
const express = require('express');
const app = express(); var db;
app.use(express.urlencoded({extended: true}));
require('dotenv').config()
const MongoClient = require('mongodb').MongoClient;
const cors = require('cors');
const { createServer } = require('http')
const { Server } = require('socket.io')
const server = createServer(app)
const io = new Server(server, {cors:{origin: 'http://localhost:9000'}})
...
require('./base.js').then(client => { db = client.db('ToDoApp');
server.listen(process.env.PORT, () => { console.log('listening on',process.env.PORT) });
}).catch(에러 => { console.log(에러);
});
...
app.get('/chat', async (요청, 응답) => { 응답.render('chat', {user: 요청.user});
})
io.on('connection', (socket) => { console.log('websocket 연결됨')
})
chat.ejs 하단에 추가.
<script src="https://cdn.jsdelivr.net/npm/socket.io@4.7.2/client-dist/socket.io.min.js"></script>
<script>
const socket = io()
socket.emit('age', '40');
</script>
</body>
console.log('listening on',process.env.PORT) 콘솔은 정상 출려되나,
console.log('websocket 연결됨') 콘솔이 출력되지 않습니다.
chat.ejs 새로고침해도 콘솔에 표출이 안 되는데, 소켓 연결이 왜 안되는지요.
방법을 찾다가 const cors = require('cors'); 를 적용해보았으나, 적용 전이나 후나 동일하게 웹소켓이 연결
client 에서 서버로 연결이 되지 않는데, 이유를 모르겠습니다. 여러가지 찾아보았으나, 소켓연결부터가 안 되버려서 이후 진도를 나가지 못한게 이틀째 입니다. 도와주십시오. 감사드립니다.