기존 웹 페이지에서 채팅방을 구현하는 방법은 서버가 매번 관련 채팅 정보를 얻도록 요청하여 관련 채팅 정보를 달성하는 것입니다. WebSocket을 사용하면 서버를 연결 한 후 데이터 상호 작용 연결을 유지할 수 있으므로 서버는 해당 데이터를 클라이언트에 적극적으로 보낼 수 있습니다. HTML5 처리를 위해서는 연결이 완료된 후 WebSocket의 수신 이벤트에서 수신 데이터 만 처리하면됩니다.
기능간단한 대화방에는 다음 기능이 있습니다.
1) 등록등록이 완료된 후 현재 서버의 모든 사용자 목록을 얻으려면 몇 가지 사항을 처리하도록 등록하면 현재 등록 된 사용자를 다른 온라인 사용자에게 보냅니다.
2) 정보 보내기서버는 현재 수신 한 메시지를 온라인으로 다른 사용자에게 보냅니다.
3) 종료서버는 연결 해제 된 사용자를 연결 해제 한 다른 사용자에게 알립니다.
채팅방의 기능 미리보기는 다음과 같습니다.
C#서비스 측정 코드서버의 코드는 여러 기능, 즉 등록, 다른 사용자를 얻고 정보를 보내는 여러 가지 방법 만 정의하면됩니다. 특정 코드는 다음과 같습니다.
/// <summary> /// Copyright © Henryfan 2012 /// 이메일 : [email protected] /// homepage : http://www.ikende.com /// CreateTime : 2012/12/7 21:45 21:45 : 25 /// </summary> 클래스 핸들러 {public long Register (문자열 이름) {tcpchannel 채널 = MethodContext.current.channel.writeline ({0} Register na : {1}, channel.endpoint , 이름); NAME MSG = user user (); (); 채널 .ClientID} public ilist <user> list () {tcpchannel 채널 = MethodContext.current.Channed = new List <user> (); Channel) add (user) item.tag);} return result;} public void say (string content) {tcpChannel Channel = MethodContext.current.chanel; st.name foreach (채널의 tcpchaannel 항목 .servernelines ()) {item.send (msg);}}
채팅실 서버의 기능을 완료하려면 위의 간단한 코드 만 필요합니다. 연결을 사용하여 이벤트를 사용하여 특정 코드를 처리 할 수 있습니다.
보호 된 void void vovensed (vase.ondisposed) {vase.ndpoint (el.ndpoint); 이름; e.channel.clientID; this.server.getOnlines ()) {if (item! = e.channel) item.send (msg);}}}채팅의 서비스 측정 코드가 완료됩니다.
자바 스크립트 코드HTML5 코드의 첫 번째는 서버에 연결하는 것입니다.
Connect () {channel.connect = function (evt) {val ( '#nikename'); (결과 = 함수 ( '#dlgconnect') ) {var item = getUser (result.data); Appndto ($ ( '#lstonlines'));} else if (result.type == ') {$ ('#user_ ' + result.data .id) .remove ();} else if (result.type == 'say') {addsayItem (result.data);} else {}} (( '#host'). val ());}다른 사용자의 등록 정보를 수신하는 경우 다른 메시지는 다른 사용자의 종료 정보가 메시지 디스플레이에 추가 된 경우 사용자 정보를 추가하십시오. 상자. JQuery의 도움의 도움은 매우 간단 해졌습니다.
사용자 등록 통화 프로세스 :
var callregister = {url : 'handler.register', 매개 변수 : {name : ''}}; value '); if isvalid) {connect ();} return false;});}온라인 사용자 목록 프로세스 얻기 :
var callist = {url : 'handler.list', 매개 변수 : {}}; (var i = 0; i <result.data.length; i ++) {var item = getUser (result.data [i]) .appndto ($ ( '#lstonlies'));}} );}메시지 프로세스 보내기 :
var callesay = {handler.say ', 매개 변수 : {content :} say () {callsay.parameters.content = meditor.html (); $ ( '#content1') [0] .focus ();} 요약코드가 캡슐화 된 후에는 웹 소켓 처리가 매우 간단 해져서 채팅방 그룹화, 정보 공유 보내기 등이 코드에서보다 기능적인 채팅방을 확장 할 수 있습니다.
위는이 기사의 모든 내용입니다.