1.0.12 • Published 7 years ago

cc-sharing v1.0.12

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

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:

  1. SharinatorInit
    • Sends data about the session in sharing-init format
  2. SharinitorInitResponse
    • Sends data about the session in sharing-init format
  3. SharinatorPublish
    • User intiated request for new data.
  4. SharinatorPublishResponse
    • Contents of publishable data in Publishable format.

To Build:

  1. Install dependencies: yarn
  2. 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.

Rough Messaging Diagram

messaging diagram

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago