From 0fb52ea7eb7c5f760f3a13afd2cbe20023dfff37 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 14 Mar 2018 04:37:20 +0900 Subject: [PATCH] :v: --- src/api/stream/othello-game.ts | 2 +- src/api/streaming.ts | 6 +++++- src/web/app/common/scripts/streaming/othello-game.ts | 2 +- src/web/app/common/views/components/othello.game.vue | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/api/stream/othello-game.ts b/src/api/stream/othello-game.ts index ba0f11252..1c846f27a 100644 --- a/src/api/stream/othello-game.ts +++ b/src/api/stream/othello-game.ts @@ -6,7 +6,7 @@ import { publishOthelloGameStream } from '../event'; import Othello from '../../common/othello/core'; import * as maps from '../../common/othello/maps'; -export default function(request: websocket.request, connection: websocket.connection, subscriber: redis.RedisClient, user: any): void { +export default function(request: websocket.request, connection: websocket.connection, subscriber: redis.RedisClient, user?: any): void { const gameId = request.resourceURL.query.game; // Subscribe game stream diff --git a/src/api/streaming.ts b/src/api/streaming.ts index 7d67ba957..f56c08092 100644 --- a/src/api/streaming.ts +++ b/src/api/streaming.ts @@ -53,6 +53,11 @@ module.exports = (server: http.Server) => { const user = await authenticate(request.resourceURL.query.i); + if (request.resourceURL.pathname === '/othello-game') { + othelloGameStream(request, connection, subscriber, user); + return; + } + if (user == null) { connection.send('authentication-failed'); connection.close(); @@ -64,7 +69,6 @@ module.exports = (server: http.Server) => { request.resourceURL.pathname === '/drive' ? driveStream : request.resourceURL.pathname === '/messaging' ? messagingStream : request.resourceURL.pathname === '/messaging-index' ? messagingIndexStream : - request.resourceURL.pathname === '/othello-game' ? othelloGameStream : request.resourceURL.pathname === '/othello' ? othelloStream : null; diff --git a/src/web/app/common/scripts/streaming/othello-game.ts b/src/web/app/common/scripts/streaming/othello-game.ts index 51a435541..cdf46d5d8 100644 --- a/src/web/app/common/scripts/streaming/othello-game.ts +++ b/src/web/app/common/scripts/streaming/othello-game.ts @@ -3,7 +3,7 @@ import Stream from './stream'; export class OthelloGameStream extends Stream { constructor(me, game) { super('othello-game', { - i: me.token, + i: me ? me.token : null, game: game.id }); } diff --git a/src/web/app/common/views/components/othello.game.vue b/src/web/app/common/views/components/othello.game.vue index 907e317ce..69b212776 100644 --- a/src/web/app/common/views/components/othello.game.vue +++ b/src/web/app/common/views/components/othello.game.vue @@ -56,6 +56,7 @@ export default Vue.extend({ computed: { iAmPlayer(): boolean { + if (!(this as any).os.isSignedIn) return false; return this.game.user1_id == (this as any).os.i.id || this.game.user2_id == (this as any).os.i.id; }, myColor(): Color {