2013-06-27 2 views
1

안녕하세요 저는 대학용 소셜 네트워킹 사이트를 만들고 있습니다. 그것은 PHP를 기반으로합니다. websocket 연결을 생성하여 알림을 검색하고 connect 및 socket.io 프레임 워크로 node.js를 사용하여 채팅 시스템을 설정합니다.다른 페이지에서 소켓 연결을 다시 시작하는 방법은 무엇입니까?

웹 서버에서 제공하는 다른 페이지에서 같은 ID로 동일한 연결을 다시 시작하려는 한 페이지에서 소켓 연결을 시작했습니다.

그리고 로그 아웃시 소켓을 파괴하고 PHP의 세션을 좋아하십시오.

+0

지금까지 시도한 것을 보여줄 수 있습니까? – Longball27

+0

sir 나는 내 응용 프로그램에서 node.js를 사용하여 웹 소켓을 구현하는 코드를 아직 작성하지 않았습니다. 하지만 다른 응용 프로그램에서 대화방을 만들 수있었습니다. 문제는 제가 1535 페이지에 사용자가 액세스 할 수 있습니다. 연결을 만들면 에 액세스 할 수 있습니다. 한 페이지에 소켓에 ​​연결을 다시 시작하지 않고 다른 페이지에서 해당 연결을 다시 시작해야합니다 – zerocool

+0

및 완전히 node.js 기반으로 모든 페이지는 PHP에서 제공하므로 다른 페이지에 연결을 다시 시작하는 데 문제가 있습니다 – zerocool

답변

0

소켓이 핸드 셰이크 프로세스를 통과 할 때 세션을 유지해야합니다.
세션을 복원하면 관련 데이터가 해당 세션에도 복원됩니다.
소켓 객체에 사용자와 관련된 데이터를 저장하지 마십시오. socket.id는 연결에 대해서만 식별하기에 신뢰할 수 없습니다.

또한 세션 데이터를 redis로 저장 한 다음 PHP 및 노드를 사용하여 세션 데이터를 저장하여 공유 응용 프로그램과 공유 할 수 있습니다.

+0

선생님, 내가 정확히 어떻게 할 수 있는지에 대한 코드를 도와 주시겠습니까? – zerocool

0

비슷한 문제가 또 다른 주제 : 나는 현재 같은 implemation 함께 일하고 있어요 그리고 난 그 사용자에 속하는 연결의 목록을 서버 측 코드를 가진 사용자 클래스에서이 문제를 극복 않았다 How to maintain a WebSockets connection between pages?

. 첫 번째 클라이언트는 서버에 연결합니다. 클라이언트는 사용자 이름을 사용하여 자체 등록하고 임의의 해시 (피싱에 대한 추가 보안)를 제공하고 서버는이 정보를 사용하여 클라이언트가 누구인지를 결정합니다.

로그 아웃 할 때 websocket 서버로 send 명령을 보내면이 사용자를 메모리에서 삭제할 수 있습니다.

+0

각하 그래서 모든 페이지에서 서버에 기능을 연결하는 것이 필수입니까? – zerocool

+0

및 코딩 부분에 대한 도움이 필요하십니까? – zerocool

관련 문제