Node.js 请帮助我nestjs套接字为什么出错?
因为这个问题,我彻夜未眠。我想我已经尽力了。我们的前端使用https,后端也使用https。目前,api运行良好,但聊天服务器仍在继续抛出ERR_SSL_PROTOCOL_错误 前端是使用我们的聊天室购物:3001/聊天插座。 这个问题似乎可以通过请求shop:3001/聊天来解决,但只会创建一个称为混合内容的新错误 -后端nginx(/etc/nginx/sites available/default)- -后端main.ts-Node.js 请帮助我nestjs套接字为什么出错?,node.js,socket.io,nestjs,Node.js,Socket.io,Nestjs,因为这个问题,我彻夜未眠。我想我已经尽力了。我们的前端使用https,后端也使用https。目前,api运行良好,但聊天服务器仍在继续抛出ERR_SSL_PROTOCOL_错误 前端是使用我们的聊天室购物:3001/聊天插座。 这个问题似乎可以通过请求shop:3001/聊天来解决,但只会创建一个称为混合内容的新错误 -后端nginx(/etc/nginx/sites available/default)- -后端main.ts- import { ValidationPipe } from '
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as fs from 'fs';
import { NestExpressApplication } from '@nestjs/platform-express';
import { join } from 'path';
async function bootstrap() {
const httpsOptions = {
key: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/privkey.pem',
'utf8'
),
cert: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/cert.pem',
'utf8'
),
ca: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/chain.pem',
'utf8'
)
};
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
cors: true,
httpsOptions
});
app.useStaticAssets(join(__dirname, '..', 'public'));
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
transform: true
})
);
await app.listen(3000);
}
bootstrap();
我解决了这个问题。我刚刚删除了WebSocket网关的端口号。完成此操作后,可以将端口3000与api一起使用。
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as fs from 'fs';
import { NestExpressApplication } from '@nestjs/platform-express';
import { join } from 'path';
async function bootstrap() {
const httpsOptions = {
key: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/privkey.pem',
'utf8'
),
cert: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/cert.pem',
'utf8'
),
ca: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/chain.pem',
'utf8'
)
};
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
cors: true,
httpsOptions
});
app.useStaticAssets(join(__dirname, '..', 'public'));
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
transform: true
})
);
await app.listen(3000);
}
bootstrap();
import {
SubscribeMessage,
WebSocketGateway,
OnGatewayInit,
WebSocketServer,
OnGatewayConnection,
OnGatewayDisconnect
} from '@nestjs/websockets';
import { Socket, Server } from 'socket.io';
import { Logger } from '@nestjs/common';
import { ItemChatJoinDto } from './dto/itemChatJoin.dto';
import { ChatService } from './chat.service';
import { ItemChatDto } from './dto/itemChat.dto';
import * as jwt from 'jsonwebtoken';
import { AutoJoinDto } from './dto/autoJoin.dto';
import { KickUserDto } from './dto/kickUser.dto';
import { ExchangeDto } from './dto/exchange.dto';
import { MessageService } from 'src/message/message.service';
import * as fs from 'fs';
// **************************************
// * gateway: chat
// * programer: DongGyun Won
// **************************************
const httpsOptions = {
key: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/privkey.pem',
'utf8'
),
cert: fs.readFileSync(
'/etc/letsencrypt/live/dongmul.shop/cert.pem',
'utf8'
),
ca: fs.readFileSync('/etc/letsencrypt/live/dongmul.shop/chain.pem', 'utf8')
};
@WebSocketGateway(3001, {
namespace: '/chatting',
secure: true,
rejectUnauthorized: true,
httpsOptions
})
export class ChatGateway { ... }