@@ -19,6 +19,7 @@
|
||||
"url": "git+https://github.com/502647092/cc-server-parent.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cc-server/ioc": "^0.5.0",
|
||||
"inversify": "^5.0.1",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"socket.io": "^2.2.0"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import "reflect-metadata";
|
||||
import { Container } from 'inversify'
|
||||
import { interfaces, BroadcastMessage } from './interfaces'
|
||||
import { TYPE } from './constants'
|
||||
import { getNamespaces, getNamespaceMetadata, getNamespaceListenerMetadata } from './utils'
|
||||
import * as io from 'socket.io'
|
||||
import { Container } from 'inversify'
|
||||
import { TYPE } from './constants'
|
||||
import { interfaces, BroadcastMessage } from './interfaces'
|
||||
import { getNamespaces, getNamespaceMetadata, getNamespaceListenerMetadata } from './utils'
|
||||
|
||||
export function buildWebSocket(container: Container, server: io.Server) {
|
||||
let constructors = getNamespaces();
|
||||
@@ -53,10 +53,6 @@ function flatten(arr: Array<any>) {
|
||||
}
|
||||
|
||||
function applyMiddlewares(namespaceEventMetadata: interfaces.ListenerMetadata[], socket: io.Socket) {
|
||||
// socket.use((packet: io.Packet, next: (err?: any) => void) => {
|
||||
// Reflect.defineMetadata(TYPE.SocketContext, socket, packet);
|
||||
// next();
|
||||
// })
|
||||
let middlewares = [...new Set(flatten(namespaceEventMetadata.map((data) => data.middleware)))];
|
||||
for (const middleware of middlewares) {
|
||||
socket.use((packet: io.Packet, next: (err?: any) => void) => { middleware(socket, packet, next); });
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { inject, injectable, decorate } from "inversify";
|
||||
import { interfaces } from './interfaces'
|
||||
import { METADATA_KEY, TYPE } from './constants'
|
||||
import { METADATA_KEY } from './constants'
|
||||
import { injectable, decorate } from "inversify";
|
||||
import { getNamespaceListenerMetadata, getNamespacesMetadata } from './utils'
|
||||
import { provideNamed, fluentProvide } from "@cc-server/ioc/src";
|
||||
|
||||
/**
|
||||
* Socket.io Namespace
|
||||
@@ -17,10 +16,6 @@ export function namespace(name?: string, ...middleware: interfaces.Middleware[])
|
||||
target: target
|
||||
};
|
||||
decorate(injectable(), target);
|
||||
//decorate(fluentProvide(TYPE.Namespace)
|
||||
// .inSingletonScope()
|
||||
// .whenTargetNamed(target.constructor.name)
|
||||
// .done(), target);
|
||||
Reflect.defineMetadata(METADATA_KEY.namespace, currentMetadata, target);
|
||||
const previousMetadata: interfaces.NamespaceMetadata[] = getNamespacesMetadata();
|
||||
Reflect.defineMetadata(METADATA_KEY.namespace, [currentMetadata, ...previousMetadata], Reflect);
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import * as io from 'socket.io'
|
||||
|
||||
export { io }
|
||||
export * from './debug'
|
||||
export * from './builder'
|
||||
export * from './decorators'
|
||||
export * from './interfaces'
|
||||
export * from './debug'
|
||||
export { TYPE } from './constants'
|
||||
export { getSocketContext } from './utils'
|
||||
export { io }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { METADATA_KEY, TYPE } from './constants'
|
||||
import { interfaces } from './interfaces'
|
||||
import { METADATA_KEY } from './constants'
|
||||
|
||||
function getNamespaces() {
|
||||
return getNamespacesMetadata().map((target) => target.target);
|
||||
@@ -29,14 +29,9 @@ function getNamespaceListenerMetadata(target: any) {
|
||||
return eventMetadata;
|
||||
}
|
||||
|
||||
function getSocketContext(packet: any) {
|
||||
return Reflect.getMetadata(TYPE.SocketContext, packet);
|
||||
}
|
||||
|
||||
export {
|
||||
getNamespaces,
|
||||
getNamespaceMetadata,
|
||||
getNamespacesMetadata,
|
||||
getNamespaceListenerMetadata,
|
||||
getSocketContext
|
||||
getNamespaceListenerMetadata
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user