piesocket-js
v5.1.0
Published
PieSocket Javascript Client
Downloads
2,975
Maintainers
Readme
PieSocket JavaScript Client
A JavaScript Library for PieSocket Realtime.
Note: This package is PieSocket Client SDK (to be used with frontend on browsers), if you are looking for the NodeJS Server SDK, please see PieSocket-NodeJS.
Installation
Yarn
yarn add piesocket-js
NPM
npm i piesocket-js
CDN
<script src="https://unpkg.com/piesocket-js@5"></script>
Importing
Import module:
import PieSocket from 'piesocket-js';
With CDN/Browser:
Use the PieSocket.default
global variable, e.g. var piesocket = new PieSocket.default({...})
How To Use
PieSocketJS offers Channels and Portals.
Channels
Channels are realtime PubSub connections over WebSocket, they allow you to:
- Subscribe to events on client side
- Publish events from server
- Publish events from client with C2C feature.
See the Channels documentation to learn more about how to use Channels.
Portals
Portals are programmable video streams over WebRTC, they allow you to build powerful video applications.
See the Portals documentation to learn more about how to use Portals.
Configuration
Complete list of allowed configuration options
| Option | Description | Default |
| ----------------------------- | ----------------------------------------------------------------------------- | -------------- |
| apiKey | Required, Your PieSocket API key. | Demo key |
| clusterId | Your API key's cluster ID. | demo
|
| clusterDomain | Custom domain, if you have configured one in your account. | null
|
| consoleLogs | Logs useful connection info if set to true
. | false
|
| notifySelf | Receive messages sent by self, pass 0
to disabled. | 1
|
| jwt | JWT authentication token, skips authentication endpoint call. | null
|
| presence | Enable presence events on any channel, pass 1
to enabled. | 0
|
| authEndpoint | Authentication endpoint for private channels. | /broadcasting/auth
|
| authHeaders | Headers to include with authEndpoint call. | {}
|
| forceAuth | Force authentication on all channels. | false
|
| userId | User ID, used when user
does not exists in JWT payload. | anonymous
|
| blockchainTestMode | Enable/disable test mode, defaults to false
i.e., Ethereum main network. Set to true
for Rinkeby test network. | false
|
| blockchainGasFee | Gas fee to set on Ethereum contract calls | 41000
|
PieSocket Object
List of available methods on the PieSocket
object
| Method | Description | Returns | | ----------------------------- | ----------------------------------------------------------------------------- | -------------- | | subscribe(channelId) | Subscribe to a channel. | Channel Object | | unsubscribe(channelId) | Un-subscribe from a channel. | Boolean | | getConnections() | Get list of all active connections/channels for this client. | Object |
Channel Object
List of available methods on the Channel
object
| Method | Description
| ----------------------------- | -----------------------------------------------------------------------------
| listen("event-name", callback) | Listen to an event.
| publish("event-name", data, meta) | Publish message from client.
| getMemberByUUID(uuid) | Get a Presence member from their uuid.
| on("lifecycle-event", callback) | Listen to lifecycle events on the native WebSocket connection.
| confirmOnBlockchain(event, transaction_hash) | Create a proof-of-witness for a Blockchain message, on receiver's end.
Development
- Clone the repo
git clone [email protected]:piesocket/piesocket-js.git
- Run
npm install
- Run
npm start
- Open
http://localhost:8080
in browser
Now you can interactively test the SDK, add features and fix bugs.
Documentation: PieSocket Realtime Docs