Добрый день.
Я создаю приложение используя Vue + Express. Решил использовать в проекте socket.io.
Vue запускает клиентскую часть на порту 8080, а сервер я запускаю на порту 3000.
Для клиента использую библиотеку socket.io-client. Для сервера использую socket.io.
Суть проблемы:
Я хочу чтобы
console.log('Connected')
выводилось только тогда, когда я перехожу на страницу
localhost:8080/books. На деле
console.log('Connected')
выводится когда я перехожу на
localhost:8080.
Код app.js:
const express = require('express')
const history = require('connect-history-api-fallback');
const app = express()
app.use(history());
const server = require('http').createServer(app)
const options = {
cors: {
origin: "http://localhost:8080",
methods: ["GET", "POST"]
}
}
const io = require('socket.io')(server, options)
const config = require('config')
const path = require('path')
const cors = require('cors')
const { v4 } = require('uuid')
const PORT = config.get('port')
app.use(cors())
// app.use('/', express.static(path.join(__dirname, '/client/dist')));
const books = io.of('/books')
books.on('connection', (socket) => {
console.log('Connected')
socket.on('disconnect', () => {
console.log('Disconnected')
})
})
server.listen(PORT, () => console.log(`Server start on ${PORT}`))
Код в App.vue:
import { io } from "socket.io-client";
const socket = io.connect("http://localhost:3000/books");