はい、インターネットには雑然としたチャットの実装がたくさんありますが、それでも私はそれらが好きではありません。 ブラックジャックを使用して、チャットの実装を紹介します。
だから、すぐにせっかちな人のための
デモへの
リンク 。
(サーバーはすでに収納されています)特徴
- データベースにメッセージを保存する
- ログイン
- チャットコマンド
- WebSocketを介したサーバーへの接続
仕組み
まあ、すべてが簡単です

方法
依存関係のインストール
sudo yum install nodejs sudo yum install mongodb npm install ws npm install mongodb
プログラム可能
まず、クライアント部分を作成し、node.jsおよびサーバーに必要な他のものをすべてインストールします。
HTMLは非常に簡潔です
<!DOCTYPE html> <html> <head> <link href='http://fonts.googleapis.com/css?family=Ubuntu&subset=latin,cyrillic' rel='stylesheet' type='text/css'> <link href="main.css" rel="stylesheet" /> <script src="main.js" defer></script> <meta charset="UTF-8"> </head> <body> <form id="loginform" class="unauthorized"> <input id="login" placeholder=""><br> <input id="password" placeholder=""> <div>* , </div> </form> <output id="messages"></output> <div> <div contenteditable id="input"></div> </div> </body> </html>
script
タグの
defer
属性のおかげで、javascriptはページ全体をロードした後にのみ開始されます。 これは、
window.onload
イベントよりもはるかに便利です。
コードを減らすには、
document.getElementById
を
$
に減らし
document.getElementById
function $(a){return document.getElementById(a)}
サーバーへの接続を開き、着信メッセージを待ちます
ws = new WebSocket ('ws://x.cloudx.cx:9000'); ws.onmessage = function (message) {
着信メッセージが最初に
specials_in
関数によって処理されることに気づいたかもしれません。 この関数は、チャット機能を拡張するメッセージ本文内の特別なフラグメントを検索します。
function specials_in (event) { var message = event.message; var moment = new Date(event.time);
送信メッセージの同様の機能
function specials_out(message) {
クライアント側の残りのコード、珍しいことは何もありません サーバー側に行きましょう
データベースに接続し、ポート9000のWebソケットでの接続を待ちます
承認と登録は、ユーザーにとって可能な限り簡単に行われます。 アカウントがない場合は、作成されます。
すべてのチャット参加者にメッセージを送信する
この関数が機能するためには、各参加者との接続へのリンクが
peers
配列にあります
新しい接続とメッセージの処理
上記のコードが機能するためには、履歴からメッセージを受信する機能、オンラインの人々のリスト、および配列から要素を削除する機能も必要です。
チャットの準備ができました!
ソースは
ここで取得でき
ます(サーバーは定期的に横たわっています)
走れる
su - mongod --smallfiles > /dev/null & node path/to/server.js > /dev/null &
藤堂
- 洪水防御
- その他のチャットコマンドと特別なスニペット
- アバターをダウンロードする
- 音声通知
- 「部屋」
- メッセージを削除する
- 画像、音声、ビデオを送信する