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.
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
- Install dependencies:
yarn
- Compile
npm run build
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);
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.