added peerWs to app, added ws config
This commit is contained in:
parent
b12a4a3a15
commit
a77de706c7
10
dist/src/instance.js
vendored
10
dist/src/instance.js
vendored
@ -27,12 +27,12 @@ const createInstance = ({ app, server, options }) => {
|
||||
app.use(options.path, api);
|
||||
//use mountpath for WS server
|
||||
const customConfig = Object.assign(Object.assign({}, config), { path: path_1.default.posix.join(app.path(), options.path, '/') });
|
||||
const wss = new webSocketServer_1.WebSocketServer({
|
||||
const wss2 = new webSocketServer_1.WebSocketServer({
|
||||
server,
|
||||
realm,
|
||||
config: customConfig
|
||||
});
|
||||
wss.on("connection", (client) => {
|
||||
wss2.on("connection", (client) => {
|
||||
const messageQueue = realm.getMessageQueueById(client.getId());
|
||||
if (messageQueue) {
|
||||
let message;
|
||||
@ -43,14 +43,14 @@ const createInstance = ({ app, server, options }) => {
|
||||
}
|
||||
app.emit("connection", client);
|
||||
});
|
||||
wss.on("message", (client, message) => {
|
||||
wss2.on("message", (client, message) => {
|
||||
app.emit("message", client, message);
|
||||
messageHandler.handle(client, message);
|
||||
});
|
||||
wss.on("close", (client) => {
|
||||
wss2.on("close", (client) => {
|
||||
app.emit("disconnect", client);
|
||||
});
|
||||
wss.on("error", (error) => {
|
||||
wss2.on("error", (error) => {
|
||||
app.emit("error", error);
|
||||
});
|
||||
messagesExpire.startMessagesExpiration();
|
||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "peer",
|
||||
"version": "0.6.1",
|
||||
"version": "0.6.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,3 +1,5 @@
|
||||
import {ServerOptions as WsConfig} from 'ws';
|
||||
|
||||
export interface IConfig {
|
||||
readonly host: string;
|
||||
readonly port: number;
|
||||
@ -14,6 +16,7 @@ export interface IConfig {
|
||||
cert: string;
|
||||
};
|
||||
readonly generateClientId?: () => string;
|
||||
readonly ws?: WsConfig;
|
||||
}
|
||||
|
||||
const defaultConfig: IConfig = {
|
||||
|
@ -34,15 +34,20 @@ export const createInstance = ({ app, server, options }: {
|
||||
app.use(options.path, api);
|
||||
|
||||
//use mountpath for WS server
|
||||
const customConfig = { ...config, path: path.posix.join(app.path(), options.path, '/') };
|
||||
const customConfig = {
|
||||
...config,
|
||||
path: path.posix.join(app.path(), options.path, '/'),
|
||||
};
|
||||
|
||||
const wss2: IWebSocketServer = new WebSocketServer({
|
||||
const wss: IWebSocketServer = new WebSocketServer({
|
||||
server,
|
||||
realm,
|
||||
config: customConfig
|
||||
});
|
||||
|
||||
wss2.on("connection", (client: IClient) => {
|
||||
app.set('peerWs', wss);
|
||||
|
||||
wss.on("connection", (client: IClient) => {
|
||||
const messageQueue = realm.getMessageQueueById(client.getId());
|
||||
|
||||
if (messageQueue) {
|
||||
@ -57,16 +62,16 @@ export const createInstance = ({ app, server, options }: {
|
||||
app.emit("connection", client);
|
||||
});
|
||||
|
||||
wss2.on("message", (client: IClient, message: IMessage) => {
|
||||
wss.on("message", (client: IClient, message: IMessage) => {
|
||||
app.emit("message", client, message);
|
||||
messageHandler.handle(client, message);
|
||||
});
|
||||
|
||||
wss2.on("close", (client: IClient) => {
|
||||
wss.on("close", (client: IClient) => {
|
||||
app.emit("disconnect", client);
|
||||
});
|
||||
|
||||
wss2.on("error", (error: Error) => {
|
||||
wss.on("error", (error: Error) => {
|
||||
app.emit("error", error);
|
||||
});
|
||||
|
||||
|
@ -18,7 +18,7 @@ interface IAuthParams {
|
||||
key?: string;
|
||||
}
|
||||
|
||||
type CustomConfig = Pick<IConfig, 'path' | 'key' | 'concurrent_limit'>;
|
||||
type CustomConfig = Pick<IConfig, 'path' | 'key' | 'concurrent_limit' | 'ws'>;
|
||||
|
||||
const WS_PATH = 'peerjs';
|
||||
|
||||
@ -40,7 +40,11 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
|
||||
const path = this.config.path;
|
||||
this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
|
||||
|
||||
this.socketServer = new WebSocketLib.Server({ path: this.path, server });
|
||||
this.socketServer = new WebSocketLib.Server({
|
||||
path: this.path,
|
||||
server,
|
||||
...this.config.ws,
|
||||
});
|
||||
|
||||
this.socketServer.on("connection", (socket: MyWebSocket, req) => this._onSocketConnection(socket, req));
|
||||
this.socketServer.on("error", (error: Error) => this._onSocketError(error));
|
||||
|
Loading…
x
Reference in New Issue
Block a user