2013-06-16 3 views
1

node.js, socket.io 및 express로 두 명의 플레이어를위한 게임을 만들고 있습니다.socket.io를 사용하는 사용자의 URL을 변경하는 방법은 무엇입니까?

재생할 세 번째 사용자의 영향을 피하기 위해 재생할 준비가 된 두 사람의 특정 URL을 생성하려고합니다.

내 질문은 두 사람이 올 때 URL을 변경하는 방법입니다.

지금 로컬에서 테스트 중입니다. 서버 측에서는 서버가 포트를 수신 대기합니다.

var express = require('express'); 
var SocketIO = require('socket.io'); 
var http = require('http'); 
var path = require('path'); 

var app = express({ 
    views: path.join(__dirname, 'views') 
}); 

app.use('/assert', express.static(path.join(__dirname, 'assert'))); 
app.engine('html', require('ejs').renderFile); 

app.get('/', function (req, res) { 
    res.render('home.html', {layout: false}); 
}); 

var server = http.createServer(app); 
var sio = SocketIO.listen(server); 
server.listen(8080); 

function(...){...} 

클라이언트 측에서는 소켓이 어딘가에 연결되어 있습니다.

var socket = io.connect('http://' + location.host); 
var .... 

난 내가해야 할 것은 내가 그들이 그것을 클릭하면 두 개의 클라이언트가. 올 것을 감지 할 때 버튼을 제공하는 것입니다 생각, 그것은 그들을 생성 된 새로운 URL로 직접.

그래서 오래된 URL과 많은 새로운 사람들이 ... 그런

어떻게 서버와 클라이언트 모두에서 다른 URL을 설정할 수 있습니다 ??

은 어떤 도움에 감사드립니다^^

+0

그래서 두 명의 플레이어가 게임을하고 싶다는 신호를 보내면 게임의 (고유 한) URL로 보내시겠습니까? – robertklep

+0

@robertklep, 생성 된 매개 변수가있는 URL로 리다이렉트하면 두 명의 플레이어를 구분할 수 있습니다. – kikkpunk

답변

1

이 고유 한 임의의 URL 1)를 사용하여 타임 스탬프를 생성하는 방법은 여러 가지이며, 2) 난수 생성기를 사용하여 당신의 미리 정의 된 URL에 추가합니다. 이 작업은 순수 자바 스크립트 함수 Math.Random() 또는 노드가 제공하는 것조차도 가능합니다.

예 :

var url = "http://www.yourHostName.com/"+(Math.Random()*(UpperLimit-LowerLimit)+(LowerLimit)); 

공급량 큰 UpperLimit 100000 (사용자의 필요 및 예상 트래픽에 따라) 및 LowerLimit = 0; 또는 다음과 같이 타임 스탬프를 사용하여 :

var url = "http://www.yourHostName.com/"+ new Date.getTime(); 

이 옆에 난 당신도 같은 작업을 수행 할 노드를 사용할 수 있습니다 말했듯이. 유사한 작업을 수행 할 수있는 node-uuid라는 모듈이 있습니다. 질문 : generate URL on node.js server

고유 한 URL과 동일한 생성 URL에 보낼 클라이언트에 대한 참조가 있으면 그런 다음 다음을 사용하여 리다이렉트하십시오.

관련 문제