Skip to content

Instantly share code, notes, and snippets.

@microadam
Created May 17, 2018 15:02
Show Gist options
  • Save microadam/3ccfa1a576ce83b8b6bbd0482a397d21 to your computer and use it in GitHub Desktop.
Save microadam/3ccfa1a576ce83b8b6bbd0482a397d21 to your computer and use it in GitHub Desktop.
Primus Client / Server
const Primus = require('primus')
const Socket = Primus.createSocket({ parser: 'binary' })
const client = new Socket('http://localhost:3030', { transport: { headers: { 'admin': 'true' } } })
client.on('open', () => {
console.log('opened!')
client.on('data', data => {
console.log(data)
})
client.write('Hello')
})
const Primus = require('primus')
const server = require('http').createServer()
const primus = new Primus(server, { transformer: 'websockets', parser: 'binary' })
primus.authorize((req, done) => {
if (req.headers.admin) {
req.isAdmin = true
}
done()
})
primus.on('connection', spark => {
console.log('connect')
spark.on('data', data => {
const isAdmin = spark.request.isAdmin
console.log('I AM ADMIN?', isAdmin)
console.log(data)
if (isAdmin) {
spark.write('Hello Back')
}
})
})
primus.on('disconnection', spark => {
console.log('disconnect')
})
server.listen(3030)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment