normalized JS Object and JSON message and event protocol for ES6+ node.js, browsers, electron, vanialla js, react.js, components, actions, stores and dispatchers
npm install js-message npm install --save js-message
tag upfront which automatically loads as defer so it doesn't interrupt the parser.
html
`
Both node and the browser now support import statements. If you use relative pathing you can use the same exact code from node in the browser without even transpiling much the less bundling.
`javascript
//works for browser natively AND node natively
import { default as Message } from './node_modules/js-message/Message.js';
//works for browser transpiled AND node natively
import { default as Message } from 'js-message';
var myMessage=new Message;
myMessage.type='message or event type';
myMessage.data.something='something';
myMessage.data.stuff=[1,2,3,4,5]
console.log(myMessage.JSON);
`
$3
`javascript
//works for browser natively AND node natively
import { default as Message } from './node_modules/js-message/Message.js';
//works for browser transpiled AND node natively
import { default as Message } from 'js-message';
//lets say we have the above example running on
//a websocket server sending js-messages as JSON
//
//and lets say this is the client in the browser
ws.on(
'message',
handleMessage
);
handleMessage(e){
var message=new Message;
message.load(e.data);
console.log(message.type, message.data);
}
`
$3
`javascript
//works for browser natively AND node natively
import { default as Message } from './node_modules/js-message/Message.js';
//works for browser transpiled AND node natively
import { default as Message } from 'js-message';
//client example, but works the same on server too!
var ws=new WebSocket('ws://myawesomeWS:8000');
var myMessage=new Message;
myMessage.type='setUsername';
myMessage.data.username='sideshow bob';
ws.send(myMessage.JSON);
``