1.0.4 • Published 4 years ago

websocket-message-object v1.0.4

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

WebsocketMessageObject

WebsocketMessageObject is an API that enables you to package any type of data into a single (binary format) massage so that you can easily send it over websocket protocol. You simply create a wmo object and keep adding any data into it by calling the appropriate functions provided in the API, then finally call the 'Encode' function which converts everything into a stream of binary data that you can send to your back-end server using the 'websocket.send(theBinaryData)' function. You can add images, videos, documents, json data as well as plain text data.

Installation 1

Let's start with the front-end version, (npm package in javascript).

The Golang version will be explained after javascript. Please scroll down.

To use Websocket Message Object API, install it as a dependency:

# If you use npm:

$ npm install websocket-message-object

# Or if you use Yarn:

$ yarn add websocket-message-object

Usage

First, you need to import the module into your application as follows:

In a react app,

import {WebsocketMessageObject} from 'websocket-message-object';

Or if you are not using react;

const wmo = require("websocket-message-object");

Now that you have a wmo object created, you can add any data to it. Here is how to add an image file.

wmo.AddFile(file); 
//NOTE: This assumes you alredy have a file object read from the DOM eg using FileReader
 
//If you want to add the file directly from the html file input field, use this method:
wmo.AddFileFrom("id-of-the-html-file-input"); 

//...
//...
//check out the code for more functions the API offers
//...
//...

And now, if you're done with adding data, fire the function that does the encoding for you automatically like so:

wmo.Encode();

List of functions available (API)

Adding data to encode

wmo.AddFile(file); 
wmo.AddFileFrom("file-input-id");
wmo.AddJson({jsonobject});
wmo.AddString("key","string you intend to add"); 
// eg wmo.AddString("name","Rodgers"); 
wmo.Encode();

Decoding data received from server

let jsondata = wmo.DecodeJson(messageFromServer);
let mystr = wmo.DecodeString(messageFromServer, "key"); 
// eg, let myname = wmo.DecodeString("name"); => returns a name such as 'Rodgers'
let strMap = wmo.DecodeStringAll(messageFromServer);    
//returns a map of key-vale pairs of strings.
let filesArray = wmo.DecodeFiles(messageFromServer);
let filesBytes = wmo.ReadFilesBytes(messageFromServer);    
//returns all files data in plain binary format

NOTE:

'messageFromServer' MUST be a binary format message encoded using the server side version of wmo. This is currently available only in Go (Golang). I am still implementing wmo for other languages.

I welcome anyone who want to contribute to this project especially in other languages.

___

Installation 2

Now the go back-end.

This is how to import the Go package into your project.

Run this command:

$ go get "github.com/AtegyekaRodgers/WebsocketMessageObject"

Then import the package into your application

package main

import (
  "fmt"
  wmo "github.com/AtegyekaRodgers/WebsocketMessageObject"
  //...
  //...
)

func main(){
  //...
}