https://github.com/flameart/websocket-core
Easy websocket framework with async auth, json-messages and user model
https://github.com/flameart/websocket-core
async authentication authorization nodejs ping-pong websocket websocket-server
Last synced: about 1 month ago
JSON representation
Easy websocket framework with async auth, json-messages and user model
- Host: GitHub
- URL: https://github.com/flameart/websocket-core
- Owner: FlameArt
- Created: 2019-11-11T19:57:39.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-13T19:46:41.000Z (almost 6 years ago)
- Last Synced: 2024-10-17T06:46:05.007Z (over 1 year ago)
- Topics: async, authentication, authorization, nodejs, ping-pong, websocket, websocket-server
- Language: JavaScript
- Size: 19.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WebSockets
Websocket mini-framework for fast start work with many-clients and process messages on `Node.js`
npm install --save FlameArt/websocket-core
## Features
* Run websocket server and work with json-messages in 3 lines of code
* **Multiply users model** with session per each
* All messages in json with `type` for each action
* **Authentication model**: by default with any login and pass.
* You can create you own async authentication and authorization methods
* Automatic **Ping-Pong** all clients and normal close dirty-disconnected users
* Send message to all clients or override with you own filter
* Lib has not map, filters and other slowly methods, but you can use it
## Getting started
Just extend `WebSocketCore` and override handlers:
```
const WebSocketCore = require("websocket-core");
class MyWebSocket extends WebSocketCore {
async getMessage(json, user, rawdata) {
console.log("Detected message from user #" + user.ID + "/" + user.ip + " [" + json.type + "] " + rawdata);
// Send to that client
user.WebSocket.send("Hello, newbie! Your session now is " + user.session);
// Send to all clients
this.sendAllUsers("Welcome to our new user #" + user.ID);
// Message correct
return true;
}
}
// Run websocket on port 7000
const MyWS = new MyWebSocket();
MyWS.start(7000);
```
## Custom auth method
Just override `WebSocketCore->authPure` method and set `WebSocketCore.useCustomAuth = true`
async authPure(login, passw, session) {
// return auth result: user info, if success, and false if auth failed
return login === passw ? {UserID: 'UserWithCoolPassw'} : false;
}
User info will be stored in `user.info`
## License
MIT