@smarterservices/vps-proctor-socket-toolkit

1.1.3 • Public • Published

toolkit

A toolkit containing functions that help with standard smartersockets tasks

##Getting Started

npm install @smarterservices/vps-proctor-socket-toolkit

###Constructor:

var toolkit = require('@smarterservices/vps-proctor-socket-toolkit');
var kit = new toolkit({socket:socket}};

Note socket in config is where you pass your entire smarterservices socket

##Methods

###muteVideo

description: Used to publish to a listener telling the student that your video is muted.

Arguments

  • topic: topic of the listener
  • mute: Bool showing mute value.
    • true
    • false

Example

kit.muteVideo(topic,true);


###changeState

description: Used to publish to a listener telling them to change state.

Arguments

  • topic: topic of the listener
  • state: The state to change to.
    • exam-view
    • conversation-view

Example

kit.changeState(topic,state);


###examStatus

Invoked when you need to actually change the status of the exam.

Arguments

  • topic: topic of the listener
  • status: The status to change the exam to.
    • blocked
    • active

Example

kit.examStatus(topic,status);


###pasteText

When invoked will send paste: true with type pastText

Arguments

  • topic: topic of the listener

Example

kit.pasteText(topic);


###blockExam

When invoked will send boolean to pause or unpause student proctor session

Arguments

  • topic: topic of the listener
  • blockExam: boolean to pause exam or not.

Example

kit.blockExam(topic,blockExam);


###fullScreen

Invoked to shift student applicaiton to fullscreen or not

Arguments

  • topic: topic of the listener
  • full: boolean to make fullscreen or no

Example

kit.fullScreen(topic,full);


###s3Speed

description: Send video upload metadata over socket

Arguments

  • topic: topic of the listener
  • userId: the users id
  • sessionId: the session id for that video
  • videoType: the video type. I.e webcam,screen
  • videoTimestamp: the timestamp from the video
  • videoId: the video id
  • speed: the speed of the upload
  • size: the size of the upload
  • time: the time the upload took

Example

kit.s3Speed(topic,userId,sessionId,videoType,videoTimestamp,videoId,speed,size,time);

Events Emitted

socket.on('message',function(topic,res){})

description: generic listener for anything not expecting a res from .register method.

Example:

socket.on('message',function(topic,res) {
	console.log(topic,res	
}

socket.on('connect',function(){})

description: called when connected. If you need to do something after connected put inside this event. Is called again on reconnect so do NOT nest other listeners inside

Example:

socket.on('connect',function(){
	console.log('now connected');
};

**socket.on('reconnect',function(){})**

description:If reconnect happens.

Example:

socket.on('reconnect',function(){
	console.log('now reconnected');
};

**socket.on('error',function(error){})**

description: happens if error happens during connect or publish.

Example:

socket.on('error',function(error){
	console.log(error);
};

**socket.on('disconnected',function(){})**

description: happens if state is switched to offline from online.

Example:

socket.on('disconnected',function(){
	console.log('now disconnected');
};

**socket.on('reconnectFailed',function(){})**

description: happens if reconnect fails(still offline).

Example:

socket.on('reconnectFailed',function(){
	console.log('now offline');
};

**socket.on('close',function(){})**

description: happens if socket connection is closed.

Example:

socket.on('close',function(){
	console.log('now closed socket');
};

###Disconnect Logic:


The socket will take between 5 and 15 seconds to register that the connection has dropped and emit the disconnect callback. When a client first disconnects their disconnect time is set to NOW - 15 seconds.

From there their client will try to reconnect every second(all socket events will be thrown into a queue).

Once reconnected will send reconnect message over all sessions they can publish to, empty their socket queue and emit a connect call from their socket.


###All events after this only available with state management class below:

socket.on('client.connected',function(obj){})

description: Happens if a new client connects to your topic

return: OBJECT {topic:topic,client:client_id}

Example:

socket.on('client.connected',function(res){
	console.log(res.topic,res.client);
};

Readme

Keywords

Package Sidebar

Install

npm i @smarterservices/vps-proctor-socket-toolkit

Weekly Downloads

9

Version

1.1.3

License

ISC

Last publish

Collaborators

  • cameron_wise
  • astarr19
  • matthew.underhill
  • smarterservicesdev
  • jasonfill