Fix upgrade server session
This commit is contained in:
parent
c2cbd60f96
commit
295a9cfd1b
15
app.js
15
app.js
@ -432,10 +432,15 @@ app.use((error, req, res, next) => {
|
|||||||
|
|
||||||
// Socket Server
|
// Socket Server
|
||||||
wss.on('connection', (ws, request, client) => {
|
wss.on('connection', (ws, request, client) => {
|
||||||
const userId = request.user.uuid || request.session.id
|
let userId = request.session.id
|
||||||
const username = request.user.username
|
let username = 'A Friendly Guest'
|
||||||
let myChannels = []
|
let myChannels = []
|
||||||
|
|
||||||
|
if (request.user) {
|
||||||
|
userId = request.user.uuid
|
||||||
|
username = request.user.username
|
||||||
|
}
|
||||||
|
|
||||||
dev && console.log(userId, 'connected')
|
dev && console.log(userId, 'connected')
|
||||||
ws.on('message', (msg) => {
|
ws.on('message', (msg) => {
|
||||||
dev && console.log(userId, 'said', msg)
|
dev && console.log(userId, 'said', msg)
|
||||||
@ -447,7 +452,7 @@ wss.on('connection', (ws, request, client) => {
|
|||||||
dev && console.log('adding watcher', userId, 'to channel', chan)
|
dev && console.log('adding watcher', userId, 'to channel', chan)
|
||||||
if (cache.live.indexOf(chan) !== -1) {
|
if (cache.live.indexOf(chan) !== -1) {
|
||||||
if (!cache.viewers[chan]) cache.viewers[chan] = {}
|
if (!cache.viewers[chan]) cache.viewers[chan] = {}
|
||||||
cache.viewers[chan][userId] = username || 'A Friendly Guest'
|
cache.viewers[chan][userId] = username
|
||||||
if (myChannels.indexOf(chan) === -1) myChannels.push(chan)
|
if (myChannels.indexOf(chan) === -1) myChannels.push(chan)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@ -481,6 +486,10 @@ wss.on('connection', (ws, request, client) => {
|
|||||||
// Handle upgrade, parse included session
|
// Handle upgrade, parse included session
|
||||||
server.on('upgrade', (request, socket, head) => {
|
server.on('upgrade', (request, socket, head) => {
|
||||||
sessionParser(request, {}, () => {
|
sessionParser(request, {}, () => {
|
||||||
|
if (request.session && request.session.passport) {
|
||||||
|
request.user = request.session.passport.user
|
||||||
|
}
|
||||||
|
|
||||||
wss.handleUpgrade(request, socket, head, function(ws) {
|
wss.handleUpgrade(request, socket, head, function(ws) {
|
||||||
wss.emit('connection', ws, request)
|
wss.emit('connection', ws, request)
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user