Skip to content

Commit

Permalink
fix(sessions): improve stavility of socket sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
jkuri committed Dec 9, 2017
1 parent d0b9d90 commit bafd4f0
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 48 deletions.
44 changes: 10 additions & 34 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
"clipboard": "^1.7.1",
"codelyzer": "4.0.0",
"compression-webpack-plugin": "^1.0.1",
"connect-sqlite3": "^0.9.10",
"conventional-changelog": "^1.1.6",
"conventional-changelog-cli": "^1.3.4",
"copy-webpack-plugin": "^4.2.0",
Expand All @@ -131,7 +132,6 @@
"enhanced-resolve": "^3.4.1",
"express": "^4.16.2",
"express-session": "^1.15.6",
"express-ws": "^3.0.0",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^1.1.5",
"fs-extra": "^4.0.2",
Expand Down
4 changes: 1 addition & 3 deletions src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import { initSetup } from './setup';
import { generateKeys } from './security';
import * as db from './db/migrations';
import chalk from 'chalk';
import * as expressWs from 'express-ws';

const server = new ExpressServer({ port: 6500 });

Expand All @@ -35,8 +34,7 @@ initSetup()
})
.then(() =>
server.start().subscribe(app => {
const socket = new SocketServer({ app: expressWs(app) });

const socket = new SocketServer({ app: app });
Observable
.merge(...[socket.start(), generateKeys()])
.subscribe(data => {
Expand Down
6 changes: 5 additions & 1 deletion src/api/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ import { Observable } from 'rxjs';
import * as routes from './server-routes';
import { webhooks } from './webhooks';
import * as session from 'express-session';
import * as uuid from 'uuid';
import { logger, LogMessageType } from './logger';
import { getRootDir } from './setup';
import * as connectsqlite3 from 'connect-sqlite3';

const SQLiteStore = connectsqlite3(session);

export interface ServerConfig {
port: number;
Expand All @@ -18,6 +21,7 @@ export interface IExpressServer {
}

export const sessionParser = session({
store: new SQLiteStore({ dir: getRootDir() }),
saveUninitialized: false,
secret: 'sessionSecret',
resave: false
Expand Down
16 changes: 7 additions & 9 deletions src/api/socket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,20 @@ export class SocketServer {
}

start(): Observable<string> {
return new Observable(observer => {
this.setupServer(this.options.app);
});
return new Observable(observer => this.setupServer(this.options.app));
}

private setupServer = (application: any) => {
private setupServer(application: any): void {
let config: any = getConfig();
let server = null;

if (config.ssl) {
server = https.createServer({
cert: readFileSync(config.sslcert),
key: readFileSync(config.sslkey)
}, application.app);
}, application);
} else {
server = http.createServer(application.app);
server = http.createServer(application);
}

const wss: uws.Server = new uws.Server({
Expand Down Expand Up @@ -140,11 +138,11 @@ export class SocketServer {
});
}

private addClient(client: Client) {
private addClient(client: Client): void {
this.clients.push(client);
}

private removeClient(socket: uws.Socket) {
private removeClient(socket: uws.Socket): void {
const index = this.clients.findIndex(c => c.socket === socket);
const client = this.clients[index];
const msg: LogMessageType = {
Expand All @@ -157,7 +155,7 @@ export class SocketServer {
this.clients.splice(index, 1);
}

private handleEvent(event: any, client: Client) {
private handleEvent(event: any, client: Client): void {
switch (event.type) {
case 'login': {
const token = event.data;
Expand Down

0 comments on commit bafd4f0

Please sign in to comment.