проблема подключения socket.io

1

Я продолжаю получать эту GET/socket.io/?EIO=3&transport=polling&t=MfRfeJD 404 4,438 мс - 149 ошибку, и я не знаю, откуда она исходит.

Я пытаюсь интегрировать живой чат в свое приложение, используя response, socket.io и express, и я продолжаю получать эту не найденную ошибку с сокетами. Я не уверен, если проблема на стороне клиента или сервера. Кажется, он пытается постоянно опрашивать сервер, но получает 404 обратно. Похоже, что socket.io не работает, но все выглядит хорошо для меня. Это также может быть связано с путями, но я не знаю. Я попытался добавить другой маршрут к Io, например, " http://localhost: 5000/ ", но все равно он не может найти сокет.

Я получаю страницу, чтобы показать, и когда я нажимаю отправить, появляется сообщение, но я не могу получить сокеты для подключения.

В app.js

    const express = require('express');

  const http = require('http')
    const bodyParser = require('body-parser')
    const socketIo = require('socket.io')

    var app = express();
    const server = http.createServer(app)
    const io = socketIo(server)

    var PORT = process.env.PORT || 5000;

    app.post('/', (req, res) => {
      const { Body, From} = req.body
      const message = {
        body: Body,
        from: From.slice(8),

      }
      io.emit('message', message)
      res.send('
               <Response>
                <Message>Thanks for texting!</Message>
               </Response>
               ')
    })

    io.on('connection', socket => {
      socket.on('message', body => {
        socket.broadcast.emit('message', {
          body,
          from: socket.id.slice(8)
        })
      })
    })

    server.listen(PORT);

В Chat.js

    import React from "react";
    import io from "socket.io-client";



    class Chat extends React.Component {
        constructor (props) {
          super(props)
          this.state = { messages: [] }
        }

        componentDidMount () {
          this.socket = io('http://localhost:5000/')
          this.socket.on('message', message => {
            this.setState({ messages: [message, ...this.state.messages] })
          })
        }

        handleSubmit = event => {
          const body = event.target.value
          if (event.keyCode === 13 && body) {
            const message = {
              body,
              from: 'Me'
            }
            this.setState({ messages: [message, ...this.state.messages] })
            this.socket.emit('message', body)
            event.target.value = ''
          }
        }

        render () {
          const messages = this.state.messages.map((message, index) => {
            return <li key={index}><b>{message.from}:</b>{message.body} </li>
          })
          return (
            <div>
               <h1>Admin Chat</h1>
              <input type='text' placeholder='Enter a message...' onKeyUp={this.handleSubmit} />
              {messages}
            </div>
          )
        }
      }



export default Chat;
Теги:
socket.io

1 ответ

0

404 явно говорит, что нет такой страницы

149 будет номером строки ошибки, вы импортируете другой код, так что это может быть в любом другом коде, что строка 149 существует

i do see a maybe in app.js and the path 
 "app.post('/', (req, res) => {"        Refers to an absolute path
     try changing "http://localhost:5000/" 
       to "http://localhost:5000" or "http://localhost/:5000"

похоже, что "/" на конце ставит 5000 в путь, а не порт

--- РЕДАКТИРОВАТЬ --- при ближайшем рассмотрении GET/socket.io/?EIO=3&transport=polling&t=MfRfeJD

если на клиенте запущен chat.js и он подключается к http://localhost: 5000 than;

http://localhost/socket.io/? EIO = 3 & transport = polling & t = MfRfeJD будет попытка подключения

похоже, клиент пытается подключиться обратно к себе.

как у вас настройки клиент/сервер?

если они являются отдельными машинами, это будет искать несуществующий URL.

В любом случае происходит в библиотеке socket.io.

  • 0
    Все еще дает мне ту же ошибку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню