従来のWebページにチャットルームを実装する方法は、サーバーに関連するチャット情報を毎回取得するように要求して、関連するチャット情報を実現することです。 WebSocketは、サーバーを接続した後、接続がデータインタラクションの接続を維持できるようにするため、サーバーは対応するデータをクライアントに積極的に送信できます。 HTML5処理の場合、接続が完了した後、WebSocketの受信イベントで受信データを処理する必要があります。
関数シンプルなチャットルームには、次の機能があります。
1)登録登録するために登録して、登録が完了した後、現在のサーバーのすべてのユーザーリストを取得すると、サービスは現在登録されているユーザーを他のオンラインユーザーに送信します。
2)情報を送信しますサーバーは、現在受信したメッセージをオンラインで他のユーザーに送信します
3)終了サーバーは、切断されたユーザーを切断した他のユーザーに通知します
チャットルームの関数プレビューは次のとおりです。
C#サービスサイドコードサーバー上のコードは、いくつかの機能のいくつかの方法、つまり登録、他のユーザーの取得、情報の送信のみを定義する必要があります。特定のコードは次のとおりです。
/// <summary> /// Copyright©Henryfan 2012 ///メール:[email protected] ///ホームページ:http://www.ikende.com /// createtime:2012/12/7 21:45 21:45:25 /// </summary>クラスハンドラー{public long register(string name){tcpchannel channel = methodcontext.current.channel; 、name.name = new jsonmessage(); (); .ClientId;} public Ilist <user> list(){tcpchannel channel.current.channel; channel)addd(usel)ital.} return result;} public void say(tcpchannel channel = methodcontext.current.chanel msg = saytext st = new SayText(); ; .data = st;
チャットルームサーバーの機能を完了するには、上記の簡単なコードのみが必要です。接続を使用して、特定のコードを処理できます。
保護されたvoid ovedisposed(sender、e)sendisposed(e); name.id = e.channel.ip = e.Channel.ToString; this.server.getonlines()){if(item!= e.channel)item.send(msg);}}}}}}チャットのサービスサイドコードが完了しました。
JavaScriptコードHTML5コードで最初に行うことは、関連するJavaScriptコードに接続することです。
function connect {channel = new tcpchaannel(); (status == status == $( '#dlgconnect') = function(evt){"#dlgconnect ') ){var item = getuser(result.data); $(item).appndto( '#lstonlines');} else(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: ''}} {$( '#frmregister')。 value ')オンラインユーザーリストプロセスを取得します:
var callist = {url: 'handler.list'、パラメーター:{}} {channel.send(calllist、function(result){$( '#lstonlines'); html( '' '); (var i = 0; i <result.data.length; i ++){var item = getuser(result.data [i]); );}メッセージプロセスを送信:
var callesay = {url: 'handler.say'、パラメーター:{content:} function {callay.parameters.content = meditor.html( ''); $( '#content1')[0] .focus();}要約しますコードがカプセル化された後、WebSocketの処理は非常に簡単になります。このコードのより機能的なチャットルームを拡張し、情報の写真共有などを送信できます。
上記は、この記事のすべての内容です。