parent
037837b551
commit
0e4a111f81
1714 changed files with 20803 additions and 11751 deletions
62
packages/backend/src/server/api/stream/channel.ts
Normal file
62
packages/backend/src/server/api/stream/channel.ts
Normal file
|
@ -0,0 +1,62 @@
|
|||
import autobind from 'autobind-decorator';
|
||||
import Connection from '.';
|
||||
|
||||
/**
|
||||
* Stream channel
|
||||
*/
|
||||
export default abstract class Channel {
|
||||
protected connection: Connection;
|
||||
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;
|
||||
}
|
||||
|
||||
protected get userProfile() {
|
||||
return this.connection.userProfile;
|
||||
}
|
||||
|
||||
protected get following() {
|
||||
return this.connection.following;
|
||||
}
|
||||
|
||||
protected get muting() {
|
||||
return this.connection.muting;
|
||||
}
|
||||
|
||||
protected get blocking() {
|
||||
return this.connection.blocking;
|
||||
}
|
||||
|
||||
protected get followingChannels() {
|
||||
return this.connection.followingChannels;
|
||||
}
|
||||
|
||||
protected get subscriber() {
|
||||
return this.connection.subscriber;
|
||||
}
|
||||
|
||||
constructor(id: string, connection: Connection) {
|
||||
this.id = id;
|
||||
this.connection = connection;
|
||||
}
|
||||
|
||||
@autobind
|
||||
public send(typeOrPayload: any, payload?: any) {
|
||||
const type = payload === undefined ? typeOrPayload.type : typeOrPayload;
|
||||
const body = payload === undefined ? typeOrPayload.body : payload;
|
||||
|
||||
this.connection.sendMessageToWs('channel', {
|
||||
id: this.id,
|
||||
type: type,
|
||||
body: body
|
||||
});
|
||||
}
|
||||
|
||||
public abstract init(params: any): void;
|
||||
public dispose?(): void;
|
||||
public onMessage?(type: string, body: any): void;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue