この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 まず、ノード環境を構築し、app.jsに次のコードを記述します。 npm で socket.io-client をインストールします Socket は、高性能なサーバー フレームワークです。開発者は、1 つまたは 2 つのインターフェイスを実装することで、RPC サービス、チャット ルーム サーバー、モバイル ゲーム サーバーなどの独自のネットワーク アプリケーションを開発できます。 npm インストール http-server 一般的に、サーバーサービスが提供されます。パラメータでポート、アドレスなどを指定できます。たとえば、ポート 8888 でサービスを開始するには、コマンドは次のようになります: http-server src -p 8888 npm インストール koa Koa は、node.js を通じて非常に表現力豊かな HTTP ミドルウェア フレームワークを実装し、Web アプリケーションの開発と API の使用をより快適にすることを目指しています。 Koa のミドルウェアは、エンコードされた順序でスタック内で実行されるため、操作を実行してリクエストを下方向 (ダウンストリーム) に渡し、その後、逆の順序 (アップストリーム) でフィルタリングして応答を返すことができます。 実装コード// 依存関係を導入する const koa = require("koa") // koa を初期化する const app = 新しい koa() // http を有効にする var server = require("http").createServer(app.callback()) // ソケットを初期化する const io = require("socket.io")(server, { cors: true }) // リッスン io.on('connection', (socket) => { // クライアントにメッセージを積極的に送信する setTimeout(() => { // io オブジェクト メソッドの emitting を通じてカスタム イベントをトリガーし、クライアントにメッセージを送信します io.emit('chat message', 'What do you want to say?') }, 1000) socket.on('切断', () => { console.log('ユーザーが切断されました') }) // サーバーでクライアントのメッセージを受信します // on メソッドを通じてイベントをリッスンします。クライアントがメッセージを送信すると、イベントがトリガーされ、クライアントが送信したメッセージを受信できます socket.on('chat message', (msg) => { コンソール.log(メッセージ) // msgはクライアントから送信されたメッセージです // クライアントにメッセージを送信することはemitです タイムアウトを設定する(() => { msg = msg.replace("あなた", "私").replace("?", "").replace("?", "!") // 処理されたメッセージをクライアントに送信するイベントをトリガーします io.emit('chat message', msg) }, 500) }) }) server.listen(5522,()=>{ console.log('ソケットサービスは有効です。ポート番号は5522です') }); このサービスに電話する 'socket.io-client' から { io } をインポートします 作成された(){ // 1. カスタマイズ可能な接続を作成する this.socket = io('ws://localhost:5522') // 2. 接続を確立する this.socket.on('connect', () => { console.log('接続が正常に確立されました') }) // 3. メッセージをリッスンして this.socket.on('chat message', msg => { を返します。 console.log('サービスから返されたメッセージ', msg) }) } これにより、簡単な AI 会話が可能になります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Nginx フォワード プロキシとリバース プロキシ、および負荷分散機能の構成コード例
1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...
導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...
ターミナル分割画面ツールは2つあります: screen と tmux 1. 画面分割を使用する(上下...
前回の記事では、openssl を使用して無料の証明書を生成した後、この証明書を使用してローカル ノ...
最近プロジェクトが中断され、RageFrame の研究は一時的に終了しました。この記事では、シングル...
今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...
text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...
pt-ハートビートデータベースがマスターとスレーブ間で複製される場合、複製ステータスとデータ遅延は非...
zabbix_agent のデプロイメント:推奨事項: zabbix_agent は docker-...
エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...
1. 仮想環境はプロジェクトに従い、単一のプロジェクト用の仮想環境を作成します(Python 3.4...
1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...
MySQLでテーブルやデータを削除する場合、 [エラー] 1451 - 親行を削除または更新できませ...
1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...
まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...