2009-06-25 4 views
3

웹 기반 채팅 클라이언트가 프레임 워크과 같은 네트워킹 프레임 워크를 사용하는 경향이 있다고 들었습니다.소켓 기반 프레임 워크없이 웹 기반 채팅 클라이언트를 구축 할 수 있습니까?

하지만 네트워크 프레임 워크없이 웹 기반 채팅 클라이언트를 구축 할 수 있습니까? 전용 ajax 연결을 사용하고 있습니까?

채팅을 끝낼 때 세션을 사용하여 세션 기반 일대일 웹 채팅 클라이언트를 만들고 싶습니다. 이것이 Ajax만을 사용하고 네트워킹 프레임 워크없이 Rails에서 가능합니까?

네트워킹 프레임 워크를 사용해야하는 효과는 무엇이며 내 앱에서 사용하지 않는 데 어떤 영향을 미칩니 까? 또한이 프로젝트에 접근하기위한 일반적인 권장 사항은 인정 될 것입니다.

답변

5

나는 당신을 올바르게 이해하고, 클라이언트가 서버에 연결하고 서버를 통해 서로 아약스를 통해 메시지를 보내야합니다. 가능합니다. 이렇게하려면 두 가지 방법이 있습니다.

쉬운 접근 방법은 두 클라이언트가 몇 초마다 폴링하여 다른 사람이 게시 한 새 메시지를 확인하는 것입니다. 단점은 메시지가 즉시 전달되지 않는다는 것입니다. 나는 이것이 rails book에있는 예제라고 생각한다.

더 복잡한 접근 방법은 열려있는 연결을 유지하고 서버에서 메시지를받은 즉시 클라이언트에 메시지를 보냅니다. 이렇게하려면 다음과 같은 것을 사용할 수 있습니다. Juggernaut

후자가 작동하지만, http가 의도 한 것이거나 해킹 비트가 아니지만이 기능이 무엇이든지간에 추가 할 것입니다. 이에 대한 실제 예는 거거 너트 파생을 사용하는 rails chat project입니다.

3

기술적으로는 모든 네트워크 기반 응용 프로그램을 말하는 것은

여기에 유일한 문제는 당신이 모든 수다가 서버를 통해 이동하거나 허용해야할지 여부입니다 ... 따라서, 소켓을 기반으로 그 아래 네트워킹 프레임 워크를 가지고 있으며, 지점 간 통신. 전자의 경우, ajax 프레임 워크를 사용하여 웹 서버와 대화 할 수 있습니다. 이것은 모든 클라이언트가 지속적으로 웹 서버를 폴링하여 업데이트를한다는 것을 의미합니다.

나중에 두 클라이언트 사이에 직접 tcp 연결을 허용해야하며 말하면 금속에 조금 더 가까이 가야합니다.

자문 해보십시오. 트래픽 비용을 지불하고 고객이 고객에게 입력하는 것이 무엇이든간에 누설에 대한 잠재적 인 책임을지고 싶습니까? 또는 사람들이 서로 대화하는 데 사용할 수있는 채팅 프로그램을 만들겠습니까?

물론, 아직까지는 다른 채팅 클라이언트를 만들고 싶습니까? 그 공간은 이미 꽤 혼잡합니다.

관련 문제