この記事では、参考までに、シンプルなチャットルームを実装するためのnode+socketの具体的なコードを紹介します。具体的な内容は次のとおりです。 サーバ定数net = require('net') 定数サーバー = net.createServer() //ユーザーリスト let clients = [] //接続をリッスンする server.on('connection',client=>{ client.on('data',(チャンク)=>{ データ = chunk.toString() とする if(data.match(/login:(.*)/)){ name = data.match(/login:(.*)/)[1]とします。 client.name = 名前 クライアント.push(クライアント) console.log(`ユーザー ${name} はオンラインです`) }それ以外{ for (const クライアントのクライアント) { if(client.name!==JSON.parse(data).name){ クライアント.write(データ) } } } }) クライアント.on('close',()=>{ console.log(`ユーザー ${client.name} はオフラインです`) }) client.on('エラー',()=>{ console.log(`ユーザー ${client.name} にエラーが発生しました`) }) }) server.on('エラー',(err)=>{ console.log('サーバーエラー',err) }) server.on('close',()=>{ console.log('サーバーのシャットダウン') }) サーバー.listen(9527,()=>{ console.log("サーバーが起動しました") }) クライアント定数net = require('net') 定数 readline = require('readline') //入力情報を読み取る const rl = readline.createInterface({ 入力: process.stdin、 出力: process.stdout }); //名前 const name = process.argv[2] //サーバーに接続する const client = net.createConnection({port:9527},()=>{ console.log(name+'サーバーに接続'); client.write(`ログイン:${name}`) client.name = 名前 //情報の送信を開始する sendMsg(client) }) client.on('data', (チャンク) => { データをJSON.parse(chunk.toString()) とします。 if(データ){ console.log(`[${data.name}] : ${data.msg}`) } }); クライアント.on('end', () => { console.log('サーバーから切断されました'); }); クライアント.on('エラー', () => { console.log('サーバーエラー'); }); //再帰出力関数 sendMsg(client){ rl.question('',(line)=>{ client.write(JSON.stringify({ 名前:クライアント名、 メッセージ:行 })) 送信メッセージ(クライアント) }) } デモサーバ クライアント 1 クライアント2 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySql 8.0.16-win64 インストール チュートリアル
>>: Docker クロスホストネットワークの実装 (手動)
静的ノードはマシン上に固定されており、いくつかの固定コマンドを通じて起動されます。動的ノードには複数...
v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...
リーダーの指示のもと、Java プロジェクトを引き継ぎ、リファクタリングを行う必要がありました。同時...
Node の研究と応用を通じて、NodeJS はシングルスレッド、イベント駆動型、非ブロッキング I...
1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...
基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...
MTR は Mini-Transaction の略です。名前が示すように、これは「最小のトランザクシ...
SEO とセキュリティを考慮して、301 リダイレクトが必要です。以下の一般的な処理には Nginx...
この記事では、弾幕効果を実現するためのjQueryの具体的なコードを参考までに共有します。具体的な内...
序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...
<br />かつて、仏印と東坡氏が仏教について雑談していたとき、東坡氏が突然こう言った。...
目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....
この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...
目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...
国慶節の休暇後、Windows アップデート後に VMware 仮想マシンが開けなくなり、「VMwa...