첫 번째 대화방은 ASP 3.0으로 작성되었습니다. 이 프로그램은 비교적 간단합니다. 당시 실제 대화방을 구축하려면 Java Applet 또는 ActiveX 컨트롤을 사용해야합니다. HTTP 기반 차트 룸은 첫 번째 대화방과 같은 질문에 직면했습니다. 이러한 문제에는 페이지 새로 고침으로 인한 화면의 깜박이는 현상이 포함됩니다. 그러나이 문제는 Ajax에 의해 해결되었습니다. Ajax는 JavaScript 및 XML 비동기 호출의 조합입니다. 이제 서버에서 JavaScript 코드를 사용하여 실제 대화방을 달성하십시오. 이 기사는 Ajax를 소개하지 않으며 Ajax 및 ASP.NET 사용에 대한 특정 이해가 있다고 가정합니다. Ajax 기술을 사용하여 기본 채팅방을 만드는 방법을 소개하십시오.
루틴
이것은 다중 사용자의 단일 대화방입니다. 기본 채팅 기능을 달성 할 수 있으며 다음과 같은 일부 명령 줄을 지원하여 채팅 기록을 지우려면 /nick [name]을 확인하여 사용자의 별명을 변경합니다. 이 프로그램은 모든 채팅 정보 및 사용자 정보를 Chatedine 클래스로 처리하여 HASHTABLE에 저장되며 StringCollection에 저장됩니다.
해시 가능한 사용자;
StringCollection 채팅;
Global.asax.cs의 Global ChatEngine 인스턴스를 선언하여 채팅방의 모든 사용자 공유 :
public static uchat.chatngine.ichatngine 엔진 = new uchat.chatngine.chatengine ();
글로벌 변수 및 페이지 정보를 동기화하는 데 사용되는 JavaScript 타이머 기능도 있습니다.
함수 settimers ()
{{
timeid = window.settimeout (updateall (), refreshrate);
}
각 사용자는 사용자 이름과 안내서로 고유하게 식별됩니다.
public void addUser (String ID, String User)
{{
// 사용자 이름이 존재하지 않도록하십시오
if (! userexists (사용자))
{{
// 사용자 목록에 사용자 추가
user.add (id, user);
// 모든 사용자에게 알림 메시지를 표시합니다
chat.add (this.makeservermessage (string.format (string.format)
Joinedfmt, user)));
}
}
프로그램 실행 인터페이스
시작 페이지는 사용자 번호, 채팅 기록의 크기와 같은 현재 세션에 대한 몇 가지 기본 정보를 보여줍니다. 사용자는 채팅방에 들어가려면 사용자 이름을 제공해야합니다. 로그인 버튼을 클릭하여 아래 기능을 입력하십시오.
보호 된 무효 로그인 (Object Sender, Eventargs e)
{{
문자열 user = txtusername.text;
if (! validateNick (user)) 반환;
if (global.engine.userexist (사용자))
{{
lblerrormsg.text = this +를 가진 사용자입니다
이름 AlReam이 존재하고 다시 시도하십시오.;
반품;
}
response.redirect (server.aspx? action = login & u = + user);
}
간단한 확인 후 사용자는 AddUser 기능을 통해 사용자 목록에 추가 된 다음 Chat Room Page.aspx를 입력합니다.
<스크립트 유형 = 텍스트/JavaScript>
sniffbrowsertype ();
// 로딩을 보여줍니다 .. 화면
showloadscreen ();
// JavaScript Timeer를 설정합니다
// 사용자 목록 및 메시지를로드합니다
settimers ();
setfocus ( 'mytext');
</스크립트>
사용자가 정보를 입력하고 반환하면 다음 기능을 다음과 같습니다.
<입력 유형 = 텍스트 클래스 = mytext
id = mytext onedown = capturereturn (이벤트)>
// 입력 상자의 ENTER 키를 캡처하고 메시지를 게시합니다.
함수 capturereturn (이벤트)
{{
if (event.which || event.keyCode)
{{
if ((event.which == 13) || (event.keyCode == 13))
{{
후 텍스트 ();
거짓을 반환합니다.
}
또 다른 {
진실을 반환하십시오.
}
}
}
기능 후 텍스트 ()
{{
RND ++;
// 먼저 텍스트 상자를 지우십시오
chatbox = getElement (mytext);
chat = chatbox.value;
chatbox.value =;
// URL에서 사용자 안내를받습니다
userId = logation.search.substring (1, locally.search.length);
// Ajax 서버 URL을 구성합니다
url = 'server.aspx = postmsg & u =' + userid + '& t =' +
EncodeUricomponent (채팅) + '& session =' + rnd;
// 인스턴스를 작성하고 설정합니다
appropriant xmlhttp 요청 객체의 //
req = getajax ();
// 새 메시지로 페이지를 업데이트합니다
req.onreadyStateChange = function () {
if (req.readystate == 4 && req.status == 200) {{
updateall ();
}
}
req.open ( 'get', url, true);
req.send (null);
}
너무 많고 특별한 것이없고 소스 코드를 볼 수 있으며, 주석 정보가 많이 있습니다.
결론적으로
Java Applet으로 대화방을 구축하려면 사용자 시스템에 JVM을 설치해야합니다. ActiveX Control에는 몇 가지 보안 문제가 있습니다. 방금 소개 된 AJAX를 사용하면 사용자가 소프트웨어를 설치할 필요가없는 HTTP를 기반으로 채팅방 프로그램을 쉽게 만들 수 있으며 유지 관리가 쉽습니다.