FAQ
#
Can I use wildcards in events?Not in Socket.IO directly, but check out this plugin by Hao-kang Den. It provides a Socket.IO middleware to deal with wildcards.
#
Prevent flooding from single connection?Limit number of events by IP
, uniqueUserId
or/and socket.id
with rate-limiter-flexible package.
#
Socket.IO with Apache Cordova?Take a look at this tutorial.
#
Socket.IO on iOS?Take a look at socket.io-client-swift.
#
Socket.IO on Android?Take a look at socket.io-client.java.
express-session#
Usage withconst express = require('express');const session = require('express-session');const app = express();
const server = require('http').createServer(app);const io = require('socket.io')(server);
const sessionMiddleware = session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }});// register middleware in Expressapp.use(sessionMiddleware);// register middleware in Socket.IOio.use((socket, next) => { sessionMiddleware(socket.request, {}, next); // sessionMiddleware(socket.request, socket.request.res, next); will not work with websocket-only // connections, as 'socket.request.res' will be undefined in that case});
io.on('connection', (socket) => { const session = socket.request.session; session.connections++; session.save();});
const port = process.env.PORT || 3000;server.listen(port, () => console.log('server listening on port ' + port));