From 04230cbd1c72693f4b9e44f3fd1efe0995aa0db3 Mon Sep 17 00:00:00 2001 From: whyour Date: Thu, 21 Oct 2021 21:52:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9websocket=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/app.ts | 4 ++-- back/loaders/{index.ts => app.ts} | 2 -- back/loaders/server.ts | 16 ++++++++++++++++ back/loaders/sock.ts | 6 +++--- src/layouts/index.tsx | 12 +++++++----- 5 files changed, 28 insertions(+), 12 deletions(-) rename back/loaders/{index.ts => app.ts} (91%) create mode 100644 back/loaders/server.ts diff --git a/back/app.ts b/back/app.ts index d7a2855a..c4b476a5 100644 --- a/back/app.ts +++ b/back/app.ts @@ -9,7 +9,7 @@ import Logger from './loaders/logger'; async function startServer() { const app = express(); - await require('./loaders').default({ expressApp: app }); + await require('./loaders/app').default({ expressApp: app }); const server = app .listen(config.port, () => { @@ -24,7 +24,7 @@ async function startServer() { process.exit(1); }); - await require('./loaders/sock').default({ server }); + await require('./loaders/server').default({ server }); } startServer(); diff --git a/back/loaders/index.ts b/back/loaders/app.ts similarity index 91% rename from back/loaders/index.ts rename to back/loaders/app.ts index 3738390e..0210cfe7 100644 --- a/back/loaders/index.ts +++ b/back/loaders/app.ts @@ -5,8 +5,6 @@ import initData from './initData'; import { Application } from 'express'; export default async ({ expressApp }: { expressApp: Application }) => { - Logger.info('✌️ DB loaded and connected!'); - await dependencyInjectorLoader({ models: [], }); diff --git a/back/loaders/server.ts b/back/loaders/server.ts new file mode 100644 index 00000000..3d5afefd --- /dev/null +++ b/back/loaders/server.ts @@ -0,0 +1,16 @@ +import { Server } from 'http'; +import Logger from './logger'; +import Sock from './sock'; + +export default async ({ server }: { server: Server }) => { + await Sock({ server }); + Logger.info('✌️ Sock loaded'); + + process.on('SIGINT', () => { + Logger.info('✌️ Server need close'); + server.close(() => { + Logger.info('✌️ Server closed'); + process.exit(0); + }); + }); +}; diff --git a/back/loaders/sock.ts b/back/loaders/sock.ts index 7b05de5c..15fae712 100644 --- a/back/loaders/sock.ts +++ b/back/loaders/sock.ts @@ -1,4 +1,4 @@ -import sockjs from 'sockjs'; +import sockJs from 'sockjs'; import { Server } from 'http'; import Logger from './logger'; import { Container } from 'typedi'; @@ -8,7 +8,7 @@ import fs from 'fs'; import { getPlatform } from '../config/util'; export default async ({ server }: { server: Server }) => { - const echo = sockjs.createServer({ prefix: '/api/ws' }); + const echo = sockJs.createServer({ prefix: '/api/ws', log: () => {} }); const sockService = Container.get(SockService); echo.on('connection', (conn) => { @@ -18,7 +18,7 @@ export default async ({ server }: { server: Server }) => { if (data) { const { token = '', tokens = {} } = JSON.parse(data); if (headerToken === token || tokens[platform] === headerToken) { - Logger.info('✌️ Sockjs connection success'); + conn.write('hanhh'); sockService.addClient(conn); conn.on('data', (message) => { diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index 1dfac2e9..2fa81d5b 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -127,13 +127,15 @@ export default function (props: any) { ws.current = new SockJS( `${location.origin}/api/ws?token=${localStorage.getItem(config.authKey)}`, ); - ws.current.onopen = (e: any) => { - console.log('websocket连接成功', e); + + ws.current.onmessage = (e: any) => { + if (e.data === 'hanhh') { + console.log('websocket连接成功', e); + } else { + console.log('websocket连接失败', e); + } }; - ws.current.onclose = (e: any) => { - console.log('websocket已关闭', e); - }; const wsCurrent = ws.current; return () => {