-
Notifications
You must be signed in to change notification settings - Fork 2
Realtime Multiplayer Game
netzzwerg edited this page Mar 1, 2013
·
29 revisions
node --version
0.8.21
npm --version
1.2.11
[sudo] npm install socket.io
[sudo] npm install express
[sudo] npm install node-uuid
cd node_modules
ls
node server.js
var serverPort = process.env.PORT || 1337,
express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app);
/* ------ ------ ------ Express ------ ------ ------ */
server.listen(serverPort);
console.log('\t :: Express :: Listening on port ' + serverPort );
app.get('/', function(req, res){
res.send('Hello World');
});
File Respond
app.get( '/', function( req, res ){
res.sendfile( __dirname + '/index.html' );
});
app.get( '/*' , function( req, res, next ) {
var file = req.params[0];
if(verbose) console.log('\t :: Express :: file requested : ' + file);
res.sendfile( __dirname + '/' + file );
});
<script src="/socket.io/socket.io.js"></script>
var sio = require('socket.io').listen(server);
sio.configure(function (){
sio.set('log level', 0);
sio.set('authorization', function (handshakeData, callback) {
callback(null, true); // error first callback style
});
});
Send Message
sio.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
var socket = io.connect('http://localhost:1337');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
Broadcast message
- Send to the current socket:
socket.emit(‘message’, data);
- Send to all sockets
sio.sockets.emit(‘message’, data);
- Send to all sockets except the current one:
socket.broadcast.emit(‘message’, data);