// aqui definimos a porta que as mensagens são enviadas embora.
// Neste caso, é a porta 8080, você pode defini-la para qualquer porta que você quiser.
// Mas Observe, algumas portas já estão em uso e, em seguida, ele irá gerar uma mensagem de erro.
var io = require("socket.io").listen(8080);
//uma variável para o nosso "automatch making"
TmpRoom="wait";
//se um cliente se conecta a isso, ele executa esta grande function.
io.sockets.on("connection", function (socket) {
// quando o cliente emite 'adduser', isto escuta e executa
socket.on("joint", function(data){
// verifica se nenhum outro jogador está esperando,
if(TmpRoom=="wait")
{
//Se sim, então executar isso
// TmpRoom = data, isto é o nome do usuário que é data
/*Isso significa que, TmpRoom não é mais = wait! então da próxima vez que
quer se juntar aqui, ir para o próximo loop, o loop "else" */
TmpRoom = data;
//em seguida, ele cria, e entra em uma sala, isso é chamado após o users username
socket.join(TmpRoom);
//Agora, ele envia a mensagem, you,playersname
socket.send("you," + TmpRoom);
// e agora, ele termina os loops.
}
else
{
//Entra no quarto temporária, para o jogador inimigo
socket.join(TmpRoom);
//Em seguida, envia o nome da sala.
socket.send("Room," + TmpRoom);
//Agora, a parte interessante. Isto não só envia dados para UM cliente,
//mas para todos os clientes na sala. Para todos os clientes na TmpRoom.
// os dados que envia, são o nome da sala no momento.
io.sockets.in(TmpRoom).send("enemy," + TmpRoom);
//e o username do outro jogador.
io.sockets.in(TmpRoom).send("enemy," + data);
//Agora novamente define o TmpRoom = wait, então, o próximo que tenta entrar,
//mais uma vez, volta para o loop acima, e cria a sua própria sala.
//As salas são automaticamente "destruídas" quando o Host sai da sala.
TmpRoom = "wait";
}
});
//se o socket, recebe uma função personalizada do C2, chamada Message com alguns dados (o nome da sala),
//em seguida, ele executa isto:
socket.on("message", function(data){
//Agora está no loop, e se o servidor recebe um evento chamado Chatmessage,
//provavelmente com uma string de message, então ele executa isto:
socket.on("chatmessage", function(data2){
//Envia uma mensagem de bate-papo na sala.
//Envia dados para todos os clientes na sala. que
//o cliente enviar definido em sua função de "message".
io.sockets.in(data).send("chatmessage," + data2);
});
//Isso é praticamente o mesmo e não necessitam de explicações
// Espero.
socket.on("GameSettings", function(data2){
//Envia as configurações do jogo, coordenadas x, y, String, tudo!
io.sockets.in(data).send("GameSettings," + data2);
});
});
// Quando o usuário se desconectar. Execute isto:
socket.on("disconnect", function(data){
//ao desconectar, sai da sala.
socket.leave(data);
});
});
Muito código certo?
// são comentários, e são usadas para definir as anotações, como o / escreva aqui /
Eu acho que isso não requer qualquer explicação adicional. Você pode baixar o arquivo do lado esquerdo.
Quanto mais você souber javascript, mais possibilidades você tem,
Este é apenas um exemplo, e não deve ser utilizado num servidor terminado.
Mas você pode usá-lo como um modelo de como ele poderia ser
Iniciando o servidor
Se perguntou como iniciar o servidor?
existe várias maneiras para isso, eu vou cobrir duas delas
1. CMD
Abra o CMD, digite:
cd C:\PastaOndeSalvouSeuJS
node yourappname.js
Agora que você iniciou o servidor, uma janela de comando deve aparecer.
2. Batch
Primeiro você abre o editor, e escreva no arquivo:
node yourserverappname.js
pause
yourserverappname precisa ser o nome do aplicativo servidor, que você usou para salvar o arquivo como.
Em seguida, pressione Salvar Como -> Nome: Start.bat -> Tipo: Todos os arquivos -> Salvar.
É isso, coloque o arquivo .bat no diretório onde esta seu arquivo .js e inicie o .bat.
Agora uma janela de comando deve aparecer, e o seu servidor iniciou.
Se você quer escrever coisas específicas para essa janela, use
console.log("Um texto" + "ou" + umaVariável);
[page="
Construct 2"]
Construct 2
Sim, era isso, agora você vai fazer coisas realmente divertidas.
Você vai encontrar o Capx à esquerda, tem toda a explicação nele, então por favor baixá-lo e dar uma olhada em como deve ser feito.
Lembre-se, é apenas um exemplo, não copiar e colar a partir dele.
Para descobrir todas essas informações, eu procurei muito tempo...
Possibilidades
Você poderia enviar dados muito complicados, embora Socket.io,
como “enemybuilt,tank,x,120,y,140,otherimportantinfos”.
O ponto é, não o servidor, precisamos reconhecer toda essa pilha de dados, ele só precisa com o que a função deve-se enviar mais passar. Então você em Construct 2 , pode levar os dados à parte, analisá-lo e usá-lo .
As mensagens estão passando tão rápido, que eu recomendo a todos que querem fazer um jogo multiplayer , querendo código, usando Socket.io eu usei o teste com um endereço DynDns , e posso dizer , socket.io é muito confiável.
Só não se esqueça , o cliente emite os dados para o servidor , o servidor envia os dados para o cliente.
Principalmente, transmiti-lo para a sala específica.
Se você quiser saber mais , use estes links, eles são muito úteis , aprendendo Javascript em profundidade e aprender mais possibilidades com Socket.io .
https://github.com/LearnBoost/socket.io/wiki/Rooms
https://gist.github.com/crabasa/2896891
http://udidu.blogspot.co.il/2012/11/chat-evolution-nodejs-and-socketio.html
http://socket.io/
http://dyn.com/dns/