Skip to content

noamtcohen/BinaryIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BinaryIO

BinaryJS with callbacks

npm install
npm start

Client:

var bio = new Bio("ws://localhost:9009",{packetSize:10});

bio.on("open", function () {
    var ab = new ArrayBuffer(2);
    var uint8 = new Uint8Array(ab);
    uint8[0] = 10;
    uint8[1] = 11;

    var f64 = new Float64Array(7);
    f64[0] = 12.15;
    f64[6] = 0.100;

    var stream = bio.createStream({something: 123});

    stream.call("Hi",{m:"hi",x: 1},uint8,function (args,bioS) {
        console.log(args);
        bioS.on("client?",function(meta,data,cb){
            console.log(meta);
            console.log(data);
            cb({what:"cb from client",x:args.x+1});
        });
    });

    stream.call("Whats Up?",{foo:"bar"},f64,function (args,bioS) {
        console.log(args);
    });

    stream.call("mixed array",{},[17,true,3.12,"a","b","c",{i:"a",j:10}],function (args,bioS) {
        console.log(args);
    });
});

Server:

var bio = require("./bioserver.js").Bio;

var server = new bio({port:9009,packetSize:10});

server.on("connection", function (client) {
    client.on("stream",function(stream){

        stream.on("Hi", function (meta, buf, cb) {
            console.log(meta);
            console.log(buf);
            cb({Hello: "Friend",x:meta.x+1},function(args,bioStream){
                var int8 = new Int8Array([1,2,3,10]);
                bioStream.call("client?",{z:"foo"},int8,function(args){
                    console.log(args);
                });
            });
        });

        stream.on("Whats Up?", function (meta, buf, cb) {
            console.log(buf);
            cb({Hi: "Hello to you too!"},function(args,bioStream){

            });
        });

        stream.on("mixed array", function (meta, buf, cb) {
            console.log(buf);
            cb({array: "got it"},function(args,bioStream){

            });
        });
    });
});

To conver your Blob or ArrayBuffer before sending use:

var b = new Blob([]);
Bio.toTypeArray(b,Uint8Array,function(array){
});

type can be and typed array (Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array).

Event names that start with "@" and end with "?" (like: "@callback?") are reserved.

About

BinaryJS with callbacks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published