문제

채팅을 추가하고 싶은 회원 사이트가 있습니다 (전용 상자에 램프). 너무 복잡 할 필요는 없지만 이미 로그인 멤버의 사용자 이름을 채팅에 사용해야합니다.

이것은 나에게 약간의 부수적 인 프로젝트이므로 가능하다면 처음부터 글을 쓰지 않으면 기존 스크립트 나 수업이 이상적입니다. 나는 약간의 검색을했고 JSON/AJAX에 기대어있는 것처럼 보이지만 결정적인 것을 찾을 수는 없습니다.

팁/포인터가 있습니까?

도움이 되었습니까?

해결책

다음은 도움이 될 수있는 두 가지 프로젝트입니다 (AJAX/JSON 기반) :

  • jQuery ajax 채팅 플러그인 -JQuery 용 간단하고 가벼운 가중 플러그인. 종이나 휘파람은 없지만 작업이 완료됩니다.

  • ajax im - 데스크탑 IM 클라이언트에서 기대할 모든 기능을 모방하려는 본격적인 웹 앱. 꽤 무거운 다운로드 크기 (324KB 압축).

현재 프로젝트 중 하나에서 기본 IM 시스템의 첫 번째 제품을 사용하고 있습니다. 각 사용자의 시스템 자격 증명을 사용하여 구현할 수있었습니다 (이미 시스템에 로그인했기 때문에 자신의 별명을 선택하는 대신). 샘플에는 AJAX에 의해 여론 조사를받는 스크립트의 PHP 소스 코드가 포함되어 있습니다. 잘 작동합니다.

다른 팁

웹 사이트 기반 채팅 시스템을 구축하는 데 일반적으로 취한 세 가지 접근 방식이 있습니다.

  1. 자바 애플릿 솔루션 - 채팅 서버에 통신하는 Java 애플릿을 찾거나 빌드하십시오. 애플릿은 IRC 클라이언트이거나 사용자 정의 서버가있는 사용자 정의 채팅 클라이언트 일 수 있습니다. 일부 웹 사이트는 심지어 Java 애플릿을 통신 프론트 엔드로 사용하는 것을 보았습니다. 여기서 인터페이스는 모두 JavaScript와 HTML이 브라우저에서 실행됩니다. 그러나 JavaScript는 애플릿에서 이벤트를 전송하여 채팅을 실행합니다.

  2. Ajax Post/POLT- 사용이 메시지를 작성할 때마다 메시지를 HTTP 서버로 보내는데, 여기서 연결된 모든 사용자가 정기적으로 새 메시지를 폴링합니다.

  3. 혜성 - 주로 JavaScript를 사용하여 각 클라이언트는 HTTP 서버와의 장기 연결을 설정하고 유휴 상태입니다. 사용자로부터 메시지가 전송되면 이미 기존 연결을 통해 전송됩니다. 또한 폴링하는 대신 다른 사용자의 새로운 메시지가 동일한 연결로 흘러 나옵니다.

개인적으로, 나는 세 번째 옵션이 가장 흥미 진진하지만 가장 복잡한 것으로 생각합니다. 혜성이 요구하는 장기적인 연결을 지원하려면 HTTP 서버의 자체 버전을 구축해야 할 것입니다. 또한 TCP/IP의 소켓 디스크립터에는 16 비트 제한이 있으므로 IP 당 약 64K 소켓으로 제한됩니다. (각 클라이언트는 열린 소켓이 필요합니다!) 마지막으로 Comet Client-Side 코드를 구축하는 기술은 브라우저마다 크게 다릅니다. 이를위한 몇 가지 프레임 워크가 있지만 새로운 브라우저가 나오는 동안 유지해야합니다.

소규모 웹 사이트를 운영하고 있고 극복 가능한 도전에 직면하고 싶다면 Ajax 폴링을 사용하십시오. 재미 있고 너무 어렵지 않으며 많은 것을 배울 것입니다. 귀찮게 할 수 없다면 자바 애플릿을 찾으십시오. 일치하는 서버로 구성되면 서버를 유지 관리하는 것에 대해 걱정할 필요가 없습니다. 해당 솔루션은 매우 클라이언트에 대한 정보가 매우 높기 때문입니다. 물론 Java 런타임 환경을 클라이언트에 설치해야하며 항상 사실이 아닙니다 ...

AJAX를 사용하여 채팅 게시물을 서버로 보내고 채팅 상자에 변경 사항을로드하여 주기적으로로드합니다 (프로토 타입은 업데이트 된 데이터 (AJAX 주기적 업데이트)를 확인하는이 작업을 수행하는 좋은 기능이 있습니다). "그다지 복잡하지 않은"이라는 사양에서 이것은 거의 뼈입니다.

예, 채팅 메시지가 데이터베이스에 저장되기를 원한다면 확실한 SQL 주입로부터 자신을 보호합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top