Skip to content

Instantly share code, notes, and snippets.

@rosancoderian
Forked from cmwelsh/socketioserver.js
Created February 11, 2017 18:18
Show Gist options
  • Select an option

  • Save rosancoderian/797a0a03d1c4456b96052c1b16725466 to your computer and use it in GitHub Desktop.

Select an option

Save rosancoderian/797a0a03d1c4456b96052c1b16725466 to your computer and use it in GitHub Desktop.
socket.io multiplayer
var express = require('express')
var browserify = require('browserify')
var app = express.createServer()
app.get('/', function(req, res){
res.render('index', { title: 'My Site' })
})
app.get('/test', function(req, res){
res.render('test', { title: 'My Site' })
})
app.configure(function(){
app.use(express.methodOverride())
app.use(express.bodyParser())
app.use(app.router)
app.use(express.static(__dirname + '/public'))
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
// browserify
var bundle = browserify({
entry: __dirname + '/public/assets/scripts/entry.js',
watch: true,
debug: true,
require: {
jquery: 'br-jquery'
}
})
app.use(bundle)
// ejs views
app.set('view engine', 'ejs')
app.set('view options', {
layout: false
})
})
var players = {
}
// socket.io
io = require('socket.io').listen(app)
io.sockets.on('connection', function (socket) {
socket.on('init', function (data) {
socket.emit('init', {
player: {
x: 400,
y: 400
},
players: players,
levelName: 'level14.nw'
});
});
socket.on('move', function (data) {
//console.log('player moved')
//console.log(data);
players[data.player.id] = {
x: data.player.x,
y: data.player.y,
ani: data.player.ani,
aniFrame: 0,
direction: data.player.direction,
chat: data.player.chat,
levelName: data.player.levelName
}
socket.volatile.broadcast.emit('update', {
player: {
id: data.player.id,
x: data.player.x,
y: data.player.y,
ani: data.player.ani,
direction: data.player.direction,
chat: data.player.chat,
levelName: data.player.levelName
}
})
});
});
// listen on port 3000
app.listen(3000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment