Gunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata untuk menyediakan perkhidmatan komunikasi yang mudah

PHPz
Lepaskan: 2023-06-27 18:34:02
asal
769 orang telah melayarinya

Dengan perkembangan Internet mudah alih, pemesejan segera telah menjadi semakin penting dan popular. Bagi kebanyakan syarikat, sembang langsung lebih seperti perkhidmatan komunikasi, menyediakan kaedah komunikasi yang mudah yang boleh menyelesaikan masalah perniagaan dengan cepat dan berkesan. Berdasarkan ini, artikel ini akan memperkenalkan cara menggunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata.

  1. Fahami rangka kerja CodeIgniter

CodeIgniter ialah rangka kerja PHP ringan yang menyediakan satu siri alatan dan perpustakaan mudah untuk membantu pembangun membangunkan aplikasi yang lebih baik dengan pantas. Kelebihannya termasuk:

  • Mudah digunakan, halangan kemasukan rendah
  • Menyediakan perpustakaan dan alatan yang kaya, kecekapan pembangunan tinggi
  • Mempunyai banyak sokongan komuniti dan dokumentasi yang sangat baik
  • Sangat fleksibel, sangat sesuai untuk aplikasi kecil dan projek mudah
    Membangunkan aplikasi sembang masa nyata
2.1 Konfigurasi persekitaran

Sebelum menjalankan aplikasi kami, kami perlu memasang rangka kerja CodeIgniter terlebih dahulu. Anda boleh menggunakan Komposer untuk memasang CodeIgniter, alat pengurusan pergantungan PHP.

Masuk ke folder projek anda dan pasang CodeIgniter:

composer require codeigniter/framework
Salin selepas log masuk

Selepas pemasangan berjaya, gunakan arahan berikut untuk memulakan pelayan tempatan dengan cepat:

php -S localhost:8000
Salin selepas log masuk

Ini akan memulakan pelayan tempatan mendengar pada port 8000. Anda boleh mengakses aplikasi anda dengan menaip localhost:8000 dalam penyemak imbas anda.

2.2 Cipta pangkalan data

Aplikasi sembang masa nyata perlu mencipta pangkalan data untuk menyimpan rekod sembang dan maklumat pengguna. Cipta pangkalan data bernama "sembang" dalam phpMyAdmin atau antara muka pangkalan data lain, dan buat dua jadual berikut:

    pengguna: menyimpan maklumat asas pengguna, seperti nama pengguna dan kata laluan
  • mesej: menyimpan rekod sembang
di bawah Ia adalah struktur jadual:

pengguna:

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
Salin selepas log masuk

mesej:

CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sender_id` int(11) NOT NULL,
`receiver_id` int(11) NOT NULL,
`message` text NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
Salin selepas log masuk

2.3 Laksanakan fungsi pendaftaran dan log masuk pengguna

Dalam CodeIgniter, anda boleh menggunakan perpustakaan sambungan pangkalan data lalai CodeIgniter. CI_DB_driver, yang boleh dibina segera.

Tambah konfigurasi pangkalan data dalam fail config.php aplikasi:

$config['hostname'] = 'localhost';
$config['username'] = 'root';
$config['password'] = 'root';
$config['database'] = 'chat';
$config['dbdriver'] = 'mysqli';
$config['dbprefix'] = '';
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = '';
$config['char_set'] = 'utf8';
$config['dbcollat'] = 'utf8_general_ci';
$config['swap_pre'] = '';
$config['encrypt'] = FALSE;
$config['compress'] = FALSE;
$config['stricton'] = FALSE;
$config['failover'] = array();
$config['save_queries'] = TRUE;
Salin selepas log masuk

Seterusnya, kita perlu menentukan Model Pengguna untuk mengendalikan pendaftaran dan log masuk pengguna. Cipta fail bernama User_model.php dalam folder aplikasi/model dengan kod berikut:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class User_model extends CI_Model
{
  public function register($data)
  {
    $this->db->insert('users', $data);
  }

  public function login($username, $password)
  {
    $this->db->select('*');
    $this->db->from('users');
    $this->db->where('username', $username);
    $this->db->where('password', $password);
    $query = $this->db->get();
    return $query->row_array();
  }
}
Salin selepas log masuk

Kod di atas mentakrifkan dua kaedah: kaedah daftar() dan kaedah log masuk(). Kaedah daftar() digunakan untuk memasukkan data pengguna ke dalam jadual pengguna, dan kaedah log masuk() digunakan untuk mendapatkan data pengguna daripada pangkalan data.

2.4 Laksanakan fungsi sembang masa nyata

Buat fail bernama chat.php dalam folder paparan aplikasi. Halaman ini mengandungi dua bahagian: antara muka sembang dan kotak input.

Pertama, kita perlu mendapatkan sejarah sembang daripada pelayan melalui Ajax. Apabila pengguna log masuk, kami akan sentiasa memaparkan sejarah sembang terkini. Dapatkan sejarah sembang terkini melalui kod berikut:

function getMessages() {
    $.ajax({
        url: '/chat/getMessages',
        type: 'POST',
        dataType: 'json',
        success: function(data) {
            // 将聊天记录插入到聊天界面
        }
    });
}

setInterval(function() {
    getMessages();
}, 1000);
Salin selepas log masuk

Kod di atas menggunakan Ajax jQuery untuk meminta kaedah getMessages() pada pelayan. Kaedah setInterval() menetapkan pemasa untuk mencetuskan kaedah getMessages() setiap saat.

Seterusnya, kita perlu melaksanakan logik menghantar mesej. Selepas pengguna memasukkan mesej, mereka boleh menekan Enter atau klik butang Hantar untuk menghantar mesej. Kita perlu mendapatkan mesej daripada kotak input dan menghantarnya ke pelayan melalui Ajax: Kaedah

function sendMessage() {
    var message = $('#message').val();
    $('#message').val('');
    $.ajax({
        url: '/chat/sendMessage',
        type: 'POST',
        data: {message: message},
        success: function(data) {
            // 消息已发送
        }
    });
}

$('#send').click(function() {
    sendMessage();
});

$('#message').keydown(function(event) {
    if (event.keyCode == 13) {
        sendMessage();
    }
});
Salin selepas log masuk

sendMessage() mendapatkan mesej daripada kotak input dan menghantarnya ke pelayan. Kaedah ini boleh dicetuskan dengan mengklik butang hantar atau menekan kekunci Enter.

Seterusnya, kita perlu melaksanakan kaedah getMessages() dan kaedah sendMessage() dalam pengawal Sembang. Cipta fail bernama Chat.php dalam folder aplikasi/pengawal dengan kod berikut:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Chat extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('message_model');
    }

    public function index()
    {
        // 显示 页面
    }

    public function getMessages()
    {
        $data = $this->message_model->get();
        header('Content-Type: application/json');
        echo json_encode($data);
    }

    public function sendMessage()
    {
        $message = $this->input->post('message');
        $this->message_model->send($message);
    }
}
Salin selepas log masuk

Kod di atas mentakrifkan 3 kaedah: kaedah index(), kaedah getMessages() dan kaedah sendMessage(). Kaedah index() digunakan untuk memaparkan halaman chat.php, kaedah getMessages() digunakan untuk mendapatkan rekod sembang terkini daripada pangkalan data, dan kaedah sendMessage() menerima mesej daripada klien dan menyimpannya dalam pangkalan data.

2.5 Melaksanakan senarai pengguna

Kita perlu mencipta fail bernama users.php dalam folder paparan aplikasi. Halaman ini mengandungi senarai yang menunjukkan pengguna yang berada dalam talian. Kita perlu menggunakan Ajax untuk mendapatkan senarai pengguna dalam talian daripada pelayan:

function getUsers() {
    $.ajax({
        url: '/chat/getUsers',
        type: 'POST',
        dataType: 'json',
        success: function(data) {
            // 将在线用户列表插入到列表中
        }
    });
}

setInterval(function() {
    getUsers();
}, 2000);
Salin selepas log masuk

Kod di atas menggunakan Ajax jQuery untuk meminta kaedah getUsers() pada pelayan. Kaedah setInterval() menetapkan pemasa untuk mencetuskan kaedah getUsers() setiap 2 saat.

Seterusnya, kita perlu melaksanakan kaedah getUsers() dalam pengawal Sembang. Kaedah ini akan mengembalikan senarai pengguna dalam talian:

public function getUsers()
{
    $data = $this->message_model->getUsers();
    header('Content-Type: application/json');
    echo json_encode($data);
}
Salin selepas log masuk

2.6 Lengkapkan aplikasi

Akhir sekali, kita perlu menambah kaedah log masuk() dan kaedah daftar() dalam pengawal Indeks. Kaedah log masuk() digunakan untuk memaparkan halaman log masuk, dan kaedah daftar() digunakan untuk memaparkan halaman pendaftaran. Halaman pendaftaran dan log masuk adalah bentuk HTML yang mudah.

Selepas melengkapkan langkah di atas, kami telah membangunkan aplikasi sembang masa nyata menggunakan rangka kerja PHP CodeIgniter. Pengguna boleh log masuk dengan memasukkan nama pengguna dan kata laluan mereka, menghantar mesej dan berbual dengan pengguna dalam talian.

  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata. Ciri-ciri aplikasi termasuk pendaftaran pengguna dan log masuk, sembang langsung, senarai pengguna dalam talian, dsb. CodeIgniter ialah rangka kerja yang sangat sesuai untuk aplikasi bersaiz kecil dan sederhana Ia menyediakan satu siri alat dan perpustakaan yang mudah tetapi berkuasa yang boleh membantu pembangun membina aplikasi web dengan cepat. Tambahan pula, terdapat banyak aspek yang perlu dipertimbangkan semasa pembangunan aplikasi sembang langsung Jika anda membangunkan aplikasi yang serupa, kami mengesyorkan agar anda menggunakan pendekatan yang diterangkan dalam artikel ini dan menyesuaikannya dengan keperluan anda.

Atas ialah kandungan terperinci Gunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata untuk menyediakan perkhidmatan komunikasi yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!