Comments (2)
Not sure if that's any use but anyway: Regarding your question on mongo's req.user-object object:
You can access the socket's HTTP handshake request object using socket.request... So if you're using express with HTTP middleware which adds the user-object, in theory you should be able to access it using socket.request['user-object']. I haven't tested this, but I'm confident it would work.
Nonetheless, I think using the default SC session store may be easier because it handles distribution across multiple store processes for you and it integrates nicely with SC.
You don't need to add any middleware to express in order to use SC's session store - It's there by default. You can access it through either the socket or HTTP req object (socket.session or req.session).
The session object is effectively an nData client (https://github.com/TopCloud/ndata) which is scoped to a particular session ID. You can use all he methods exposed by the nData client (except the ones related to pub/sub - See link above for API).
So in your example where you use passport.authenticate(), if you have a reference to either a socket object or a HTTP req object, you can just use something like:
req.session.set('user', req.user, function (err) {
// This is an optional callback to check if data was set successfully on local nData store process
});
Then later, if you need to get the data out of this session:
req.session.get('user', function (err, data) {
// ... If data is undefined then you know that the request's current session was never authenticated
});
Hopefully that answers your questions. Don't hesitate to ask more questions if you run into any issue. Also suggestions are welcome.
If anyone is interested; The clustering engine (which provides the session object) is a modular component of SC (can be swapped out), the default one (and currently the only one) is called IOCluster: https://github.com/TopCloud/iocluster. Ideally, it would be nice to make alternatives with different popular storage engines like Redis and Mongo.
from socketcluster.
Oh how did I not see that! Thank you so much. Both of the solutions worked fine but as you said, the latter one (ndata) works just as good and I don't need to use mongo for sessions!
Thanks again, fast response and good explanations!
from socketcluster.
Related Issues (20)
- Worker is leaving instance repeatedly and reconnects after a while HOT 1
- Is it possible to merge publish messages? HOT 1
- 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
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.