【发布时间】:2019-02-13 02:37:20
【问题描述】:
我有以下服务器文件:
const express = require('express')
const app = express()
const server = require('http').Server(app)
const io = module.exports.io = require('socket.io')(server)
const PORT = process.env.PORT || 3231
const SocketManager = require('./SocketManager')
app.use(express.static(__dirname + '/../../build'))
io.on('connection', SocketManager)
server.listen(PORT, ()=>{
console.log("Connected to port:" + PORT);
})
我在前端这样连接它:
import React, { Component } from 'react';
import io from 'socket.io-client';
import Game from '../Game/Game';
import axios from 'axios'
const socketUrl = "/"
const socket = io(socketUrl)
但我一直在我的控制台中收到这个:
加载资源失败:服务器响应状态为 405(不允许)
我真的不确定要更改或设置什么来纠正错误。
【问题讨论】:
-
您的前端,是否托管在您拥有套接字服务器的同一后端(服务器文件)上?
-
并将此行分解并单独导出
const io = module.exports.io = require('socket.io')(server) -
它们是单独的文件,不是同一个文件,我认为这与发生 405 错误的原因没有任何关系,只是您希望它根据自己的最佳显示方式实践
-
我的意思是问您是否将前端托管在运行套接字的同一后端上?
-
如果有帮助,我将托管在 heroku 上,如果这可能会导致某些问题,我也会使用 Auth0 进行身份验证登录,但我不相信它是
标签: reactjs express heroku socket.io