/interactive-node

A TypeScript, NodeJS and Browser compatible client for Mixer's interactive 2 Protocol.

Primary LanguageTypeScriptMIT LicenseMIT

Interactive Node

Build Status

A TypeScript, Node.js and Browser(JavaScript) compatible client for Mixer.com's interactive 2 Protocol.

For an introduction to interactive2 checkout the reference docs on the developers site.

Installation

You can use npm(recommended) or download a zip from the releases page.

Browser

<script src="dist/interactive.js"></script>

Node

npm i --save @mixer/interactive-node

Usage

Authentication

OAuth 2.0 is used for authentication. Valid bearer tokens can be passed in the Client.open method.

For more information about Mixer's OAuth visit the OAuth reference page on our developer site.

Browser

index.html

<doctype html>
<html>
    <head>
        <title>Interactive 2</title>
    </head>
    <body>
        <script src="js/interactive.js"></script>
        <script src="js/app.js"></script>
    </body>
</html>

app.js

const client = new interactive.GameClient();

client.open({
    authToken: '<OAuth Token>',
    versionId: 1234,
});

Node

JavaScript

const interactive = require('@mixer/interactive-node');
const ws = require('ws');

interactive.setWebSocket(ws);

const client = new interactive.GameClient();

client.open({
    authToken: '<OAuth Token>',
    versionId: 1234,
});

TypeScript

import { GameClient, setWebSocket } from '@mixer/interactive-node';
import * as ws from 'ws';

setWebSocket(ws);

const client = new GameClient();

client.open({
    authToken: '<OAuth Token>',
    versionId: 1234,
});

Examples

Checkout our examples to get up to speed quickly!

  • basic - Connects and sets up 5 buttons, when they are clicked the participant is charged 1 spark.
  • dynamicControls - Connects and then creates and destroys 5 buttons with random text.
  • joystick - Connects and creates a joystick, logs participant coordinate values.

Using Node.js? Clone this repository and run npm run build and the examples will be converted to JavaScript for you!

Documentation

Checkout our reference docs here.

Development

To get a development environment setup:

  1. Clone this repository
  2. npm install
  3. npm run build

Contributing

Thanks for your interested in contributing, checkout TODO.md for a list of tasks!

Open a Pull Request we'd love to see your contributions.