尽管服务器收到请求,但Socket.io返回404错误

时间:2019-11-11 11:52:17

标签: typescript sockets socket.io

我目前在使用Typescript和socket.io时遇到问题。 我正在尝试使用套接字系统将用户连接到服务器,但是socket.io给我一个404错误,并且没有连接套接字。 更奇怪的是,我的服务器上有一个记录器来显示收到的所有请求...并且确实收到了套接字请求:因此,我的请求确实在正确的位置完成,但仍未检测为套接字一个。

首先,这是我的服务器创建:

import { Application } from 'express'
import * as http from 'http'
import { log } from '../services'
import { db, socket } from '.'
import App from './app.core'

class Server {

    public app: Application = new App().app
    private server: http.Server

    constructor (app: Application) {
        this.app = app
        this.server = http.createServer(this.app)
    }

    public async run(): Promise<void> {
        await db.run()
        this.server.listen(this.app.get('port'), () => {
            log.success(`Server is listening on port ${this.app.get('port')} in ${this.app.get('env')} mode`)
        })
    }

    public close(): void {
        this.server.close()
        log.success(`Server is close`)
    }

}

export default Server

然后将服务器作为参数提供给我的套接字系统的构造函数:

import { log } from '../services'
import io from 'socket.io'
import Server from './server.core'

class Socket {

    public socket: any
    static sockets: any = {}

    static getUserSocket (id: any): { userId: String, socket: io.Socket } {
        return Socket.sockets[id]
    }

    static onDisconnection(socket: io.Socket) {
        log.debug(socket, 'user disconnected')
        // Do things
    }

    static onConnection(socket: io.Socket) {
        log.debug(socket.id, 'user connected')
        // Do things
    }

    constructor(http: Server) {

        this.socket = io(http, { path: `/chat/socket.io` })
        this.socket.on('connection', Socket.onConnection)
        log.debug('Socket initialized')

    }

}

export default Socket

现在,当我尝试使用套接字将客户端连接到服务器时,服务器指示服务器确实收到了来自客户端的请求,但返回了404。该请求如下:

GET /chat/socket.io/?EIO=3&transport=polling&t=MvQIY8m - returned 404

让我感到困惑的是,确实输入了“ /chat/socket.io”作为io初始化参数的路径。因此,我看不到哪里出了问题...

非常感谢您的帮助,对于许多英语错误深表歉意!如果需要某些精度或其他可能有用的方法,我会尽力回答!

0 个答案:

没有答案