【发布时间】:2021-03-02 10:48:00
【问题描述】:
我正在准备在我的 Angular 应用程序中使用 SocketIoModule 将我的 Angular 应用程序与我的 NodejS 后端连接,但我在浏览器中遇到错误
我的后台
const express = require('express');
var cors = require('cors')
const app = express();
app.use(cors({
origin: ':'
}))
const http = require('http');
const server = http.Server(app);
const socketIO = require('socket.io');
const io = socketIO(server);
const port = process.env.PORT || 3000;
server.listen(port, () => {
console.log(`started on port: ${port}`);
});
io.on('connection', (socket) => {
console.log('user connected');
});
io.on('new-message', (message) => {
io.emit(message);
});
模块.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { SocketIoModule, SocketIoConfig } from 'ngx-socket-io';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
const config: SocketIoConfig = { url: 'http://localhost:3000', options: {} };
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
SocketIoModule.forRoot(config),
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这会触发服务器上的“连接”事件,但会在浏览器控制台中引发错误
【问题讨论】:
-
可能是一个愚蠢的问题,但您是否尝试过删除:app.use(cors({ origin: ':' }))
-
如果有帮助,我想我可以收集一个旧的工作示例。
-
无论有没有它,我都会遇到同样的错误。如果你发现它会很糟糕@JBoothUA
-
好吧,它比较旧,如果我没记错的话,我使用 socket.io 和 Express Web 服务器将它连接起来,然后通过 IISNODE 将它连接到我的 IIS。不确定这是否相关,但我会发布它
-
我实际上只是注意到了一些别的东西,所以我发布了一些代码和另一个理论:)
标签: node.js angular websocket socket.io cors