Rumah > hujung hadapan web > tutorial js > Bina ruang sembang masa nyata berdasarkan JavaScript

Bina ruang sembang masa nyata berdasarkan JavaScript

王林
Lepaskan: 2023-08-10 23:18:16
asal
1319 orang telah melayarinya

Bina ruang sembang masa nyata berdasarkan JavaScript

Bina ruang sembang masa nyata berdasarkan JavaScript

Dengan perkembangan pesat Internet, orang ramai semakin menumpukan perhatian kepada pemesejan segera dan pengalaman interaktif masa nyata. Sebagai alat pemesejan segera yang biasa, bilik sembang masa nyata adalah sangat penting kepada individu dan perniagaan. Artikel ini akan memperkenalkan cara membina ruang sembang masa nyata yang ringkas menggunakan JavaScript dan memberikan contoh kod yang sepadan.

Kami mula-mula memerlukan halaman hadapan sebagai antara muka UI ruang sembang. Berikut ialah contoh struktur HTML ringkas:

<!DOCTYPE html>
<html>
<head>
    <title>实时聊天室</title>
    <style>
        #messages {
            height: 400px;
            overflow: scroll;
            border: 1px solid grey;
        }
    </style>
</head>
<body>
    <div id="messages"></div>
    <input type="text" id="input" placeholder="输入消息">
    <button onclick="sendMessage()">发送</button>
</body>
</html>
Salin selepas log masuk

Dalam kod di atas, kami telah mencipta elemen <div> untuk memaparkan mesej dan menetapkan ketinggian tetap dan gaya bar skrol. Seterusnya, kami menambah kotak teks dan butang di mana pengguna boleh menaip mesej dan butang untuk menghantarnya. <div>元素来显示消息,并设置了固定的高度和滚动条样式。接下来,我们添加了一个文本框和一个按钮,用户可以在文本框中输入消息,并通过按钮将其发送出去。

接下来,我们需要编写相应的JavaScript代码来处理实时聊天室的逻辑。以下是一个简单的实现示例:

// 创建一个WebSocket连接
const socket = new WebSocket('ws://localhost:3000');

// 当连接建立时执行
socket.onopen = function(event) {
    console.log('已连接到服务器');
};

// 当收到服务器消息时执行
socket.onmessage = function(event) {
    const messages = document.getElementById('messages');
    const message = document.createElement('div');
    message.innerText = event.data;
    messages.appendChild(message);
    // 滚动到最底部
    messages.scrollTop = messages.scrollHeight;
};

// 发送消息
function sendMessage() {
    const input = document.getElementById('input');
    const message = input.value;
    socket.send(message);
    input.value = '';
}
Salin selepas log masuk

在上述代码中,我们使用了JavaScript中的WebSocket API来建立与服务器的实时连接。当连接建立成功后,我们会收到一个onopen事件。而当收到服务器发来的消息时,会触发onmessage事件,我们将收到的消息添加到消息显示区域中,并通过设置滚动条位置自动滚动到底部。

最后,我们需要在服务器端创建一个WebSocket服务器来处理和转发消息。以下是一个使用Node.js和WebSocket库的示例:

const WebSocket = require('ws');

// 创建WebSocket服务器
const wss = new WebSocket.Server({ port: 3000 });

// 当有新的WebSocket连接建立时执行
wss.on('connection', function(ws) {
    console.log('有新的连接');

    // 当收到消息时执行
    ws.on('message', function(message) {
        console.log('收到消息: ' + message);

        // 将消息广播给所有连接的客户端
        wss.clients.forEach(function(client) {
            client.send(message);
        });
    });
});
Salin selepas log masuk

在上述代码中,我们使用了WebSocket库来创建WebSocket服务器。当有新的连接建立时,会触发connection事件。而当收到消息时,会触发message

Seterusnya, kita perlu menulis kod JavaScript yang sepadan untuk mengendalikan logik ruang sembang masa nyata. Berikut ialah contoh pelaksanaan mudah:

rrreee

Dalam kod di atas, kami telah menggunakan API WebSocket dalam JavaScript untuk mewujudkan sambungan masa nyata dengan pelayan. Apabila sambungan berjaya diwujudkan, kami akan menerima acara onopen. Apabila mesej diterima daripada pelayan, acara onmessage akan dicetuskan Kami akan menambah mesej yang diterima ke kawasan paparan mesej dan secara automatik tatal ke bawah dengan menetapkan kedudukan bar skrol.

Akhir sekali, kita perlu mencipta pelayan WebSocket di bahagian pelayan untuk memproses dan memajukan mesej. Berikut ialah contoh menggunakan Node.js dan perpustakaan WebSocket: 🎜rrreee🎜 Dalam kod di atas, kami telah menggunakan perpustakaan WebSocket untuk mencipta pelayan WebSocket. Apabila sambungan baharu diwujudkan, acara connection akan dicetuskan. Apabila mesej diterima, acara mesej akan dicetuskan dan kami akan menyiarkan mesej yang diterima kepada semua pelanggan yang disambungkan. 🎜🎜Dengan contoh kod ringkas di atas, kami boleh melaksanakan ruang sembang masa nyata berdasarkan JavaScript. Apabila pengguna memasukkan mesej dan mengklik butang hantar, mesej dihantar ke pelayan melalui sambungan WebSocket dan dimajukan oleh pelayan kepada semua pelanggan yang disambungkan. Selepas pelanggan menerima mesej, ia memaparkannya dalam antara muka UI. Keseluruhan proses merealisasikan fungsi komunikasi masa nyata. 🎜🎜Sudah tentu, contoh di atas hanyalah pelaksanaan mudah Dalam ruang sembang masa nyata yang sebenar, fungsi lain seperti pemotongan dan penyambungan semula, pengesahan pengguna, sembang peribadi, dan lain-lain perlu dikendalikan. Saya harap artikel ini dapat memberi anda idea asas dan contoh kod untuk membantu anda membina ruang sembang masa nyata anda sendiri. 🎜

Atas ialah kandungan terperinci Bina ruang sembang masa nyata berdasarkan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan