javascript - 웹페이지에서 인스턴트 메시징 기능을 만드는 방법에 대해 질문이 있으신가요? ?
typecho
typecho 2017-06-28 09:22:36
0
2
710

질문: 웹사이트의 QQ 채팅 인터페이스와 유사한 기능을 만들고 싶습니다. 복잡할 필요는 없고 사용자의 아바타와 전송된 콘텐츠만 표시하면 됩니다. 채팅을 녹음하세요. 최신 20개 기록을 실시간으로 표시만 하시겠습니까?

개인 생각: 기능이 비교적 간단하고 크게 복잡하지 않고, 표시되는 내용은 최신 20개 항목만 필요하므로 AJAX 폴링 방식을 사용하여 사용자가 채팅 기록을 입력하면 기록이 저장될 예정입니다. 데이터베이스에서(AJAX 폴링은 실시간으로 데이터베이스 데이터를 읽음) 데이터를 얻은 후 페이지에 데이터를 표시합니다. 이렇게 해도 괜찮나요? 여러 사람과 채팅을 하면 문제가 없나요? 예를 들어 페이지에 데이터가 표시되면 속도가 매우 느려진다는 건가요?

Websoket을 사용하면 이 작업을 수행할 수 있지만 사용해 본 적이 없으며 Windows 서버에서 사용할 수 있는지도 모르겠습니다(프로젝트는 Windows에 배포됩니다).

질문입니다. 좋고 간단한 방법이 있나요? 조언 좀 해주세요! ! ! !

typecho
typecho

Following the voice in heart.

모든 응답(2)
为情所困

websocket或者socket.io就可以实现了, 这个和操作平台关系不是很大, 和你实现的web服务程序关系比较大, 因为你得选择一个一个web程序支持websocket或者socket.io. 我之前用node.js`가 구현되었으며, 온라인 예제도 참조하고
Node.js + Web Socket을 참조하여 인스턴트 채팅 프로그램 HiChat

을 만들 수도 있습니다.
小葫芦

AJAX 폴링을 사용하면 여러 사람이 채팅할 때 각 단말기가 지속적으로 데이터베이스 데이터를 요청해야 하며 이는 다음과 같은 단점이 있습니다.

  1. 요청이 많아 서버에 부담이 가중됩니다.

  2. AJAX 폴링 자체가 느립니다

  3. 브라우저에는 동일한 도메인 이름으로 AJAX 요청 수에 제한이 있으므로 데이터 상호 작용의 효율성은 여전히 ​​매우 낮습니다.

WebSocket을 사용한다면 nodeJSws做一个广播服务,可以挂起在Windows后台,也可以随意移植,相当方便,用到的库是这个:https://www.npmjs.com/package/ws
不得不说,NodeJS를 사용하여 이식성, 확장성, 호환성 측면에서 상당히 좋은 것을 작성하는 것이 좋습니다.

구체적인 작업은 다루지 않겠습니다. ws包的broadcase example예제를 참고하여 작성하시면 됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿