1.0.12 • Published 7 years ago
cc-sharing v1.0.12
cc-sharing client library
To be used by clients of the CC Sharintor
This library defines iFramePhone message signatures for the purpose of 'sharing' work between students and teachers.
Details
There are four message types defined:
SharinatorInit
- Sends data about the session in
sharing-init
format
- Sends data about the session in
SharinitorInitResponse
- Sends data about the session in
sharing-init
format
- Sends data about the session in
SharinatorPublish
- User intiated request for new data.
SharinatorPublishResponse
- Contents of publishable data in
Publishable
format.
- Contents of publishable data in
To Build:
- Install dependencies:
yarn
- Compile
npm run build
Using this library
All of this subject to change out of the blue. As of 2017-09-06 the easiest / best thing to do is something like this:
const context:Context = {
protocolVersion: "1.0.0",
user: 1, // <string>|<number>
id: uuid.v1(),
group: 2, // <string>|<number>
offering: 3, // <string>|<number>
class: 4, // <string>|<number>
requestTime: new Date().toISOString()
};
const app:SharableApp = {
// Describe the application:
application: {
launchUrl: "http://127.0.0.1:8080/src/demo/iframe.html",
name: "demo iframe app"
},
getDataFunc: (context) => {
// 1. Construct a unique url from the sharing context:
const dataUrl = `${context.group.id}-${context.offering.id}-${context.user.id}`;
// 2. The promise constructs a list of data Represnetations:
return new Promise((resolve, reject) => {
resolve([
{
type: Text,
dataUrl: `this is the iframe response at ${new Date()}`
}
]);
});
}
};
// Pass in an existing phone as first arg if you want to reuse it.
sharing = new SharingRelay({app:app});
const receivePub = (snapshot:PublishResponse) => console.log(snapshot);
sharing.addPublicationListener({newPublication: receivePub});
sharing.initializeAsTop(context);
Running the demo & tester app
You can view an online demo.
You can epxierment with that demo by cloning the gihub repo cc-sharing-demo
See that README document for more info.