সম্পাদনা: কিছু মডিউল চেষ্টা করে না যা কাজ করে নি, আমি আসলে গিয়েছিলাম এবং এটি করার জন্য আমার নিজের লাইব্রেরি লিখেছি। নির্লজ্জ প্লাগ: https://github.com/aviddiviner/Sket.IO-sessions এ এটি পরীক্ষা করে দেখুন । আমি আমার পুরানো পোস্টটি নীচে historicalতিহাসিক উদ্দেশ্যে ছেড়ে দেব:
আমি বাইপাস না করেও এই কাজ পেয়েছিলাম বেশ সুন্দরভাবে flashsocket অনুযায়ী পরিবহন pr0zac উপরে এর সমাধান। আমি সকেট.আইওর সাথে এক্সপ্রেসও ব্যবহার করছি। এখানে কিভাবে।
প্রথমে সেশন আইডিটি ভিউতে পাস করুন:
app.get('/', function(req,res){
res.render('index.ejs', {
locals: {
connect_sid: req.sessionID
}
});
});
তারপরে আপনার দৃষ্টিতে, এটি সকেটের সাথে যুক্ত করুন Iআই ক্লায়েন্ট-সাইড:
<script>
var sid = '<%= connect_sid %>';
var socket = new io.Socket();
socket.connect();
</script>
<input type="button" value="Ping" onclick="socket.send({sid:sid, msg:'ping'});"/>
তারপরে আপনার সার্ভার-সাইড সকেটে.আইও শ্রোতা, এটিকে তুলে নেবেন এবং সেশন ডেটা পড়ুন / লিখুন:
var socket = io.listen(app);
socket.on('connection', function(client){
client.on('message', function(message){
session_store.get(message.sid, function(error, session){
session.pings = session.pings + 1 || 1;
client.send("You have made " + session.pings + " pings.");
session_store.set(message.sid, session);
});
});
});
আমার ক্ষেত্রে, লাইব্রেরিটি session_store
ব্যবহার করে আমার রেডিস redis-connect
।
var RedisStore = require('connect-redis');
var session_store = new RedisStore;
app.use(express.session({ store: session_store }));
আশা করি এটি গুগল অনুসন্ধান করার সময় এই পোস্টটি সন্ধানকারী কাউকে সহায়তা করেছে (যেমন আমি করেছি;)