socket-mobile-controller

wrapper for socket.io mobile controller

Usage no npm install needed!

<script type="module">
  import socketMobileController from 'https://cdn.skypack.dev/socket-mobile-controller';
</script>

README

Socket mobile controller

npm version

Usage

$ npm install socket-mobile-controller --save-dev

Server

var express = require('express');
var app     = express();
var http    = require('http').Server(app);
var io      = require('socket.io')(http);

var socketManager = require('./lib/SocketManager')(io, {
    uidMaxNum     : 4, 
    mobileRefPath : 'mobile'
});

/*
- uidMaxNum // max number of sessions, ie. 9999
- mobileRefPath // pathname to distinguish between desktop and mobile
*/

Client

<script src="/socket.io/socket.io.js"></script>
var socket = io.connect('http://localhost:8888');

socket.on('connect', onConnect);
socket.on('message', onMessage);
socket.on('disconnect', onDisconnect);

function onMessage(e)
{
    switch(e.message)
    {
        case "connected":
            this.socket.UID = e.uid;
            break;

        case "device-connected":
            console.log(e);
            break;

       case 'control-change':
            console.log('control-change:', e);
            break;
    }
}

Full example on dist folder

Docker + supervisord

Setup your Docker environment

Make sure you change the following variables inside the Makefile

  • IMAGE_NAME
  • CONTAINER_NAME

Supervisord

Change the paths to your folders and server script on devops/supervisord.conf

Dockerfile

Check the Dockerfile for any changes in folder names or files that you want to include / remove

Ready?

Once you're ready, you can just run

make docker

Check your Docker configuration and open the URL it's running.

AWS Elastic Beanstalk

This setup should just run out of the box on a AWS EBS setup with Docker.

Have fun!

@Thanks to grudelsud for his big patience with me =)