Почему не приходят сообщения от websocket?

Почему не приходят сообщение в консоль от сокета? В консоли сервера все приходит отлично. А в браузере пусто. А от события connection в браузер приходит. В чем дело?
Сервер:
const express = require('express'),
  app = express(),
  http = require('http').createServer(app),
  io = require('socket.io')(http)

const host = '127.0.0.1'
const port = 8080

let clients = []

io.on('connection', socket => {
  console.log({'connected':`${socket.id}`})
  clients.push(socket.id)
  socket.emit('message', {"imid":`${socket.id}`})
  socket.on('message', message => console.log( message))

  socket.on('disconnect', () => {
    clients.splice(clients.indexOf(socket.id), 1)
    console.log({"discconnected":`${socket.id}`})
  })
})

app.use(express.static(__dirname))

app.get('/', (req, res) => res.render('index'))

app.get('/clients-count', (req, res) => {
  res.json({ count: io.clients().server.engine.clientsCount })
})

app.post('/client/:id', (req, res) => {
  if (clients.indexOf(req.params.id) !== -1) {
    io.sockets.connected[req.params.id].emit('private message', `Message to client with id ${req.params.id}`)
    return res.status(200).json({ message: `Message was sent to client with id ${req.params.id}` })
  } else return res.status(404).json({ message: 'Client not found' })
})

http.listen(port, host, () => console.log(`Server listens http://${host}:${port}`))


Клиент:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Socket.io example</title>
    <script src="/node/node_modules/socket.io-client/dist/socket.io.js"></script>
    <script>
      let socket = io('http://127.0.0.1:8080')

      
      socket.on('private message', message => console.log('Private message from server: ', message))
	  socket.on('message', message => console.log('Message: ', message))

      function sendMessageToServer() {
        socket.emit('message', "I'm client")		
      }
    </script>
  </head>
  <body>
    <button onclick="sendMessageToServer()">Send</button>
  </body>
</html>


По чему по нажатию кнопки send в консоли сервера все срабатывает а в консоли браузера пусто?
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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