Improve streaming API
This commit is contained in:
		
							parent
							
								
									9c0e990568
								
							
						
					
					
						commit
						6012e98ae6
					
				|  | @ -9,6 +9,7 @@ export default abstract class Channel { | |||
| 	public id: string; | ||||
| 	public abstract readonly chName: string; | ||||
| 	public static readonly shouldShare: boolean; | ||||
| 	public static readonly requireCredential: boolean; | ||||
| 
 | ||||
| 	protected get user() { | ||||
| 		return this.connection.user; | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'apLog'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'drive'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ import Channel from '../../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'gamesReversiGame'; | ||||
| 	public static shouldShare = false; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	private gameId: mongo.ObjectID; | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'gamesReversi'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'globalTimeline'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	private mutedUserIds: string[] = []; | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'hashtag'; | ||||
| 	public static shouldShare = false; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'homeTimeline'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	private mutedUserIds: string[] = []; | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'hybridTimeline'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	private mutedUserIds: string[] = []; | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'localTimeline'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	private mutedUserIds: string[] = []; | ||||
| 
 | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'main'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'messagingIndex'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'messaging'; | ||||
| 	public static shouldShare = false; | ||||
| 	public static requireCredential = true; | ||||
| 
 | ||||
| 	private otherpartyId: string; | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ const ev = new Xev(); | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'notesStats'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ const ev = new Xev(); | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'serverStats'; | ||||
| 	public static shouldShare = true; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ import Channel from '../channel'; | |||
| export default class extends Channel { | ||||
| 	public readonly chName = 'userList'; | ||||
| 	public static shouldShare = false; | ||||
| 	public static requireCredential = false; | ||||
| 
 | ||||
| 	@autobind | ||||
| 	public async init(params: any) { | ||||
|  |  | |||
|  | @ -173,6 +173,10 @@ export default class Connection { | |||
| 	 */ | ||||
| 	@autobind | ||||
| 	public connectChannel(id: string, params: any, channel: string, pong = false) { | ||||
| 		if ((channels as any)[channel].requireCredential && this.user == null) { | ||||
| 			return; | ||||
| 		} | ||||
| 
 | ||||
| 		// 共有可能チャンネルに接続しようとしていて、かつそのチャンネルに既に接続していたら無意味なので無視
 | ||||
| 		if ((channels as any)[channel].shouldShare && this.channels.some(c => c.chName === channel)) { | ||||
| 			return; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue