Nodejs は WebSocket サービスをローカルで開始し、フロントエンドはデバッグのためにローカル WebSocket インターフェイスを呼び出します。

以前は、http のローカル サービス デバッグ インターフェイスを起動するために、nodejs をよく使用していましたが、今日は、WebSocket をデバッグする必要があるため、nodejs を使用してローカル サービスを起動します。nodejs を使用して、WebSocket サービスをローカルで起動する方法を共有します。 !
ローカル WebSocket サービスを開始するには、nodejs-websocket が必要なので、最初にノード プロジェクトを初期化しましょう。
1. ターミナルを開き、最初に js ファイルを作成し、次に npm init -y を使用してパッケージ管理を初期化します。このようなフォルダーが得られます。
ここに画像の説明を挿入
2.nodejs-websocket をインストールします: npm install nodejs-websocket
3.index.js にコードを書き込みます

// 引入nodejs-websocket
const ws = require('nodejs-websocket');
// 定义监听的host地址跟port端口
const host = '127.0.0.1',
    port = 8000;
// 创建ws服务
const service = ws.createServer((conn) => {
    
    
    // 定义测试数据
    const data = ['消息1', '消息2', '消息3'];
    conn.on('text', (message) => {
    
    
        // 当收到消息的时候就开始定时推送
        console.log('message', message);
        setInterval(() => {
    
    
            // 随机推送message里的内容
            conn.sendText(data[(Math.random() * 2).toFixed(0)]);
        }, 5 * 1000);
    });
}).listen(port, host, () => {
    
    
    console.log('service---connection---');
});

4. HTML ページを作成して、成功したかどうかをテストします。

<script>
    window.onload = () => {
      
      
        if ('WebSocket' in window) {
      
      
            // 创建websocket连接
            let ws = new WebSocket('ws://127.0.0.1:8000');
            // 成功连接的时候推送一条消息,此时服务端就可以开始推送数据了
            ws.onopen = () => {
      
      
                console.log('websocket链接成功---');
                ws.send('success');
            }
            ws.onmessage = (message) => {
      
      
                let data = message.data;
                console.log('获取websocket消息-', data);
            }
            ws.onerror = () => {
      
      
                console.error('websocket链接失败');
            }
        } else {
      
      
            console.error('当前设备不支持websocket');
        };
    };
</script>

5. ターミナルにノードindex.jsを入力してサービスを開始し、index.htmlページを開いて接続が成功したことを確認し、メッセージの受信を開始します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_46496355/article/details/128027844