Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- var http = require('http').Server(app);
- var shortId = require('shortid');//import shortid lib
- var dgram = require('dgram');
- var socket = dgram.createSocket('udp4');
- app.use(express.static(__dirname));
- var clients = [];//storage clients
- var clientLookup = {};// cliends search engine
- var sockets = {};//storage sockets
- socket.on('message', function(message,rinfo) {
- console.log('server got message: '+message+' from '+rinfo.address);
- var data = JSON.parse(message);//converte para json o conteudo da variavel message
- switch(data.id )
- {
- case "PING":
- console.log('[INFO] test ping received !!! ');
- var response = "PONG"+','+"pong!!!";//formata os dados com o separador virgula para serem enviados de volta ao Sender
- var msg = new Buffer(response);//bufering
- console.log('send response to client');
- //Sending Messages Back to Sender "Socket.Emit"
- socket.send(msg,
- 0,
- msg.length,
- rinfo.port,//port of Sender
- rinfo.address//IP of Sender
- );
- break;
- case "LOGIN":
- console.log('[INFO] Player ' + data.name + ' connected!');
- var currentUser = {
- name:data.name,
- id:shortId.generate(),
- socketID:socket.id,
- pass:data.pass,
- port:rinfo.port,
- address:rinfo.address
- } //new user in clients list
- clients.push(currentUser);//add currentUser in clients list
- clientLookup[currentUser.id] = currentUser;//add client in search engine
- sockets[currentUser.socketID] = socket;//add curent user socket
- console.log(" currentUser "+currentUser);
- console.log('Total players: ' + clients.length);
- //console.log('response: '+"LOGIN_SUCCESS "+','+currentUser.id+','+currentUser.name+','+currentUser.pass);
- var response = "LOGIN_SUCCESS"+','+currentUser.id+','+currentUser.name+','+currentUser.pass;
- var msg = new Buffer(response);
- console.log('send response to client');
- /* socket.send(msg,
- 0,
- msg.length,
- rinfo.port,
- rinfo.address);
- */
- // tentativa de enviar em broadcast para todos os clientes "socket.emit.broadcast"
- clients.forEach( function(i) {
- console.log('socketID: '+i.socketID);
- sockets[i.socketID].send(msg,
- 0,
- msg.length,
- i.port,
- i.address);
- });
- break;
- case "REGISTER":
- break;
- case "MOVE":
- break;
- case "ROTATE":
- break;
- }//END-SWITCH
- });
- var port = 5000;
- socket.on('listening',function(){
- var address = socket.address();
- console.log('server listening on '+ address.address+':'+address.port);
- });
- http.listen(process.env.PORT ||5000, function(){
- console.log('listening on *:5000');
- });
- socket.bind(process.env.PORT||port);
- console.log("------- server is running -------");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement