@auvious/cobrowser / Receiver
Class: Receiver
handle the receiver endpoint of a cobrowsing session aks for permission, render page updates, control remote
Table of contents
Constructors
Properties
- api
- auviousClient
- buffer
- commonSubscription
- compressionSupport
- config
- flushLite
- listeners
- options
- permissions
- player
- renderer
- serviceWorkerRegistration
- serviceWorkerState
- sessionId
- state
- terminationCountdown
- version
Methods
- accessDenied
- canControl
- canView
- checkCompression
- cleanup
- clearTerminationTimer
- controlAccepted
- controlRevoked
- createCommand
- createPage
- createSession
- disable
- enable
- getFeatureSupport
- getServiceWorkerState
- handleEvent
- isActive
- on
- onSessionCreated
- optionUpdated
- pageUpdated
- reconnect
- registerServiceWorker
- requestAccess
- schedule
- sendEvent
- sendPending
- sendUpdates
- setTerminationTimer
- setVersion
- startServiceWorkerRegistration
- terminate
- terminated
- viewAccepted
- viewRevoked
Constructors
constructor
• new Receiver(auviousClient, config, listeners?): Receiver
Parameters
| Name | Type |
|---|---|
auviousClient | AuviousCommon |
config | IReceiverConfig |
listeners | ReceiverEvents |
Returns
Properties
api
• Private api: ApiResource
auviousClient
• auviousClient: AuviousCommon
buffer
• Private buffer: PlayerBuffer
commonSubscription
• Private commonSubscription: IEventClientSubscription
compressionSupport
• Private compressionSupport: ICompressionSupport
config
• config: IReceiverConfig
flushLite
• Private flushLite: boolean = false
next flush is lite
listeners
• Private listeners: ReceiverEvents = {}
options
• Private options: ICobrowserOptionUpdatedEvent
permissions
• Private permissions: Object
Type declaration
| Name | Type |
|---|---|
control | boolean |
view | boolean |
player
• Private player: Player
renderer
• Private renderer: MirrorPage
serviceWorkerRegistration
• Private serviceWorkerRegistration: Promise<void>
serviceWorkerState
• Private serviceWorkerState: ICobrowserServiceWorkerState
sessionId
• sessionId: string = null
state
• Private state: ReceiverState = ReceiverState.INITIALIZING
terminationCountdown
• Private terminationCountdown: number = -1
timeout id failsafe for notifying client of termination
version
• Private version: number = 0
Methods
accessDenied
▸ accessDenied(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserAccessDeniedEvent> |
Returns
void
canControl
▸ canControl(): boolean
Returns
boolean
canView
▸ canView(): boolean
Returns
boolean
checkCompression
▸ checkCompression(): Promise<void>
Returns
Promise<void>
cleanup
▸ cleanup(): void
Returns
void
clearTerminationTimer
▸ clearTerminationTimer(): void
Returns
void
controlAccepted
▸ controlAccepted(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserPermissionAcceptedEvent> |
Returns
void
controlRevoked
▸ controlRevoked(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserPermissionRevokedEvent> |
Returns
void
createCommand
▸ createCommand<E>(type, payload?): IApiCommand<E>
Type parameters
| Name |
|---|
E |
Parameters
| Name | Type |
|---|---|
type | API_COMMAND |
payload? | E |
Returns
IApiCommand<E>
createPage
▸ createPage(): Promise<void>
Returns
Promise<void>
createSession
▸ createSession(target): Promise<void>
create and initialize a session, prefer requestAccess for normal flow
Parameters
| Name | Type |
|---|---|
target | Object |
target.userEndpointId | string |
target.userId | string |
Returns
Promise<void>
disable
▸ disable(option): Promise<void>
Parameters
| Name | Type |
|---|---|
option | "scroll" | "record" |
Returns
Promise<void>
enable
▸ enable(option, settings?): Promise<void>
Parameters
| Name | Type |
|---|---|
option | "scroll" |
settings? | any |
Returns
Promise<void>
getFeatureSupport
▸ getFeatureSupport(): Promise<ICobrowserFeatureSupport>
Returns
Promise<ICobrowserFeatureSupport>
getServiceWorkerState
▸ getServiceWorkerState(): Object
Returns
Object
| Name | Type |
|---|---|
controlled | boolean |
error? | unknown |
registered | boolean |
supported | boolean |
handleEvent
▸ handleEvent(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<any> |
Returns
void
isActive
▸ isActive(): true | MirrorPage
a fully established cobrowsing connection
Returns
true | MirrorPage
on
▸ on<E>(event, listener): void
add event listener, previous one gets overwritten
Type parameters
| Name | Type |
|---|---|
E | extends keyof IReceiverEventMap |
Parameters
| Name | Type |
|---|---|
event | E |
listener | (arg: IReceiverEventMap[E]) => void |
Returns
void
onSessionCreated
▸ onSessionCreated(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserSessionCreatedEvent> |
Returns
void
optionUpdated
▸ optionUpdated(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | ICobrowserEvent<ICobrowserOptionUpdatedEvent> |
Returns
Promise<void>
pageUpdated
▸ pageUpdated(ev): Promise<void>
must render all updates
Parameters
| Name | Type |
|---|---|
ev | ICobrowserEvent<PageUpdateV3> |
Returns
Promise<void>
reconnect
▸ reconnect(sessionId): Promise<void>
reconnect to a previous session
Parameters
| Name | Type | Description |
|---|---|---|
sessionId | string | the cobrowser session to reconnect to |
Returns
Promise<void>
registerServiceWorker
▸ registerServiceWorker(): Promise<void>
Returns
Promise<void>
requestAccess
▸ requestAccess(access, user): Promise<void>
request access to page, view or control
Parameters
| Name | Type | Description |
|---|---|---|
access | COBROWSER_PERMISSION | View or control a page |
user | Object | The user whose page we want access |
user.userEndpointId | string | - |
user.userId | string | - |
Returns
Promise<void>
schedule
▸ schedule(): Promise<void>
Returns
Promise<void>
sendEvent
▸ sendEvent<T>(event, data): void
sends event back to client's listener
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
event | string |
data | T |
Returns
void
sendPending
▸ sendPending(data): Promise<void>
Parameters
| Name | Type |
|---|---|
data | PageUpdateV3 |
Returns
Promise<void>
sendUpdates
▸ sendUpdates(ev): Promise<void>
Parameters
| Name | Type |
|---|---|
ev | PageUpdateV3 |
Returns
Promise<void>
setTerminationTimer
▸ setTerminationTimer(): void
Returns
void
setVersion
▸ setVersion(version): void
Parameters
| Name | Type |
|---|---|
version | number |
Returns
void
startServiceWorkerRegistration
▸ startServiceWorkerRegistration(): void
Returns
void
terminate
▸ terminate(): Promise<void>
end the session for all
Returns
Promise<void>
terminated
▸ terminated(event?): void
Parameters
| Name | Type |
|---|---|
event? | ICobrowserEvent<ICobrowserTerminatedEvent> |
Returns
void
viewAccepted
▸ viewAccepted(event): Promise<void>
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserPermissionAcceptedEvent> |
Returns
Promise<void>
viewRevoked
▸ viewRevoked(event): void
Parameters
| Name | Type |
|---|---|
event | ICobrowserEvent<ICobrowserPermissionRevokedEvent> |
Returns
void