@WebLedNik

Как подключить socket для определённой стр сайта?

Добрый день.

Я создаю приложение используя 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");
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы