Comments (1)
Apologies for the delayed response. Of course it's possible.
Here I made a very simplified example of how you could implement message aggregation using middlewares.
// client
!async function doSomethingWithFlushedBuffer() {
const channel = socket.subscribe('RushikeshWatchingList')
for await (const data of channel) {
console.info('RushikeshWatchingList data', data)
}
}()
// server
const messageBuffer = {}
const bufferableChannels = ['currency1', 'currency2', 'currency3']
agServer.setMiddleware(agServer.MIDDLEWARE_OUTBOUND, async (middlewareStream) => {
for await (const action of middlewareStream) {
if (action.type === action.PUBLISH_OUT) {
const { socket, channel, data } = action
if (!bufferableChannels.includes(channel)) {
action.allow()
continue
}
if (!messageBuffer[socket.id]) {
messageBuffer[socket.id] = []
}
messageBuffer[socket.id].push({ channel, data })
action.block(`Message has been buffered`)
if (messageBuffer[socket.id].length <= 500) {
continue
}
agServer.exchange.transmitPublish('RushikeshWatchingList', messageBuffer[socket.id])
delete messageBuffer[socket.id]
// Message buffer has been flushed
}
}
})
If you have some other questions, please, ask them in chat https://gitter.im/SocketCluster/socketcluster
from socketcluster.
Related Issues (20)
- SocketCluster version 16.0.1 SCC problem in minikube k8
- JWT token : invalid signature HOT 1
- `socketcluster create` screws up app name HOT 2
- badSocketAuthToken event not triggering HOT 2
- Unused dependencies HOT 1
- Bump Docker image HOT 1
- Socket connection gets timed out unexpectedly HOT 3
- Potential security issue HOT 5
- any way to send the missing socket update to client after network restore HOT 3
- We unable received the middleware sending error message from socket client HOT 2
- Has anyone tried to deploy socket cluster on Azure Container apps? HOT 1
- socket.on is not a function HOT 3
- BadConnectionError - socketcluster-client when requesting from server side. It works fine if the request is issued from the browser. HOT 3
- Callbacks scale much more than async/await approach HOT 2
- Namespace in channels HOT 3
- Is there any CPU/Memory Resources requests / limits recommendation?
- Socketcluster 16.x stopped working due to underlying library update HOT 1
- socketcluster compliance HOT 3
- RFE: allow running multiple scc-state servers that vote the leader automatically HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from socketcluster.