tfpsockets
v0.2.2
Published
Simple event based websockets wrapper
Downloads
7
Maintainers
Readme
TFPSockets
Simple, lightweight, event based websockets library for web and nodejs.
Usage
Install
npm install --save tfpSockets
Client
Include code - Browser
<script src="TFPSocketsClient-Browser.js"> </script>
Include code - Nodejs
const TFPSocketsClient = require('TFPSockets').client
Open connection
var conn = new TFPSocketsClient("ws://localhost:1600", ["chat"])
conn.on('connected', event => {
console.log('connected')
})
Add event listeners
conn.on('eventName', data => {
console.log('Received event: ', data.eventName, 'with payload: ', data.payload)
})
Listener for all events
All events will be sent to `message` listener even if there is another listener sent for those events.
conn.on('message', event => {
console.log("onMessage received event: ",event)
})
Send Events
conn.send('eventName',{x:0,y:0})
Send Data
conn.sendData('eventName',new Uint8Array())
Client for browser is build on top of WebSocket javascript object. TFPSocketsClient provides access to base socket object via ws
property and can also be initialised with a pre initialised WebSocket instance using:
var client = new TFPSocketsClient(null, null,initialisedWS)
Server
Server library is build on top of WS libary. library provides access to base WebSocket.Server object via wss
proprerty for those who need more customisation.
Include
const TFPSocketsServer = require('TFPSockets').server
Create Server (using express)
const express = require('express');
const http = require('http');
const url = require('url');
const app = express();
const server = http.createServer(app);
const TFPServer = new TFPSocketsServer(server,["chat"])
server.listen(1507, function listening() {
console.log('Listening on %d', server.address().port);
});
Listening for connections and event
TFPServer.on('connection',client => {
client.on('testEvent', data => {
console.log("test event payload: ", data.payload)
client.send('testEventBack',{x:1,y:100})
})
})
Limitations & next steps
- ~~doesn't support binary data events - WIP~~
- ssl certificates setup - WIP