Hướng dẫn socket programming in php codeigniter - lập trình socket trong php codeigniter

Codeigniter WebSocket Thư viện

Codeigniter WebSocket Thư viện. Nó cho phép bạn tạo các ứng dụng thời gian thực mạnh mẽ bằng cách sử dụng công nghệ WebSocket Ratchet [Socketo.me & Ratchet_Client].

Thư viện WebSocket cho CodeIgniter 4.x //github.com/takielias/codeigniter4-websocket

Nếu bạn gặp phải bất kỳ vấn đề nào, bạn có thể kiểm tra Codeigniter WebSocket ví dụ //github.com/takielias/codeigniter-webebsocket- example

Phụ thuộc

  • Php 5.6+
  • Khung Codeigniter [3.1.* Được đề xuất]
  • Nhà soạn nhạc
  • Phần mở rộng PHP được bật

Cài đặt

Bước 1: Cài đặt thư viện của nhà soạn nhạc

Chỉ bằng cách chạy lệnh sau trong thư mục của dự án của bạn:

composer require takielias/codeigniter-websocket

Đừng quên bao gồm tệp Autoload của bạn vào CI CIGG:

$config['composer_autoload'] = FCPATH.'vendor/autoload.php';

➡ Bước 2: Một thiết lập lệnh

Nếu bạn muốn cài đặt lệnh đơn, chỉ cần thực hiện lệnh trong thư mục dự án

N.B: Nó sẽ làm cho 2 bộ điều khiển mới chào mừng.php và user.php It will make 2 new controllers Welcome.php and User.php

php vendor/takielias/codeigniter-websocket/install.php --app_path=application

Ở đây app_path xác định tên thư mục ứng dụng codeigniter mặc định của bạn

Wow bạn đã làm nó !!!✔️

Mở hai trang dự án của bạn trên URL sau với ID khác nhau:

//localhost/your project directory/index.php/user/index/1

$config['composer_autoload'] = FCPATH.'vendor/autoload.php';
0

Trong ví dụ này, người nhận_id được xác định bởi user_id, như bạn có thể thấy, đó là cuộc gọi lại xác thực xác định ID người nhận.recipient_id is defined by user_id, as you can see, it's the auth callback who defines recipient ids.

Nếu bạn có một cái gì đó như vậy, mọi thứ đều ổn cho bạn:

Bạn có thể thử gõ và gửi một cái gì đó trong mỗi trang [xem CMD để biết thêm nhật ký].

Chạy máy chủ WebSocket theo cách thủ công

Nếu bạn muốn kích hoạt chế độ gỡ lỗi, hãy nhập lệnh greand gred trong thư mục dự án của bạn:

php index.php welcome index

Nếu bạn thấy tin nhắn tin nhắn dưới đây, bạn đã hoàn thành [đừng đóng CMD của bạn]!

➡ Kiểm tra ứng dụng

Phát tin nhắn với ứng dụng PHP của bạn!

Nếu bạn muốn phát tin nhắn với tập lệnh PHP hoặc thứ gì đó khác, bạn có thể sử dụng thư viện như Textalk/WebSocket [người được đưa vào nhà soạn nhạc của tôi.[who is included in my composer.json as required library]

Lưu ý: Thông báo đầu tiên là bắt buộc và luôn ở đây để thực hiện xác thực

$client = new Client['ws://0.0.0.0:8282'];

$client->send[json_encode[array['user_id' => 1, 'message' => null]]];
$client->send[json_encode[array['user_id' => 1, 'message' => 'Super cool message to myself!']]];

Xác thực & gọi lại

Thư viện cho phép bạn xác định một số cuộc gọi lại, đây là một ví dụ:

class Welcome extends CI_Controller
{
    public function index[]
    {
        // Load package path
        $this->load->add_package_path[FCPATH . 'vendor/takielias/codeigniter-websocket'];
        $this->load->library['Codeigniter_websocket'];
        $this->load->remove_package_path[FCPATH . 'vendor/takielias/codeigniter-websocket'];

        // Run server
        $this->codeigniter_websocket->set_callback['auth', array[$this, '_auth']];
        $this->codeigniter_websocket->set_callback['event', array[$this, '_event']];
        $this->codeigniter_websocket->run[];
    }

    public function _auth[$datas = null]
    {
        // Here you can verify everything you want to perform user login.
        // However, method must return integer [client ID] if auth succedeed and false if not.
        return [!empty[$datas->user_id]] ? $datas->user_id : false;
    }

    public function _event[$datas = null]
    {
        // Here you can do everyting you want, each time message is received
        echo 'Hey ! I\'m an EVENT callback'.PHP_EOL;
    }
}

  • Auth Type Gallback được gọi tại tin nhắn đầu tiên được đăng từ máy khách. type callback is called at first message posted from client.
  • Gọi lại loại sự kiện được gọi trên mỗi tin nhắn được đăng. type callback is called on every message posted.

Làm thế nào để nhận phản hồi vào bộ điều khiển Codeigniter?

Xin vui lòng xem bộ điều khiển chào mừng.php.

public function index[]
{
	// Load package path
	$this->load->add_package_path[FCPATH . 'vendor/takielias/codeigniter-websocket'];
	$this->load->library['Codeigniter_websocket'];
	$this->load->remove_package_path[FCPATH . 'vendor/takielias/codeigniter-websocket'];

	// Run server
	$this->codeigniter_websocket->set_callback['auth', array[$this, '_auth']];
	$this->codeigniter_websocket->set_callback['event', array[$this, '_event']];
	$this->codeigniter_websocket->set_callback['roomleave', array[$this, '_roomleave']];
	$this->codeigniter_websocket->run[];
}

public function _roomleave[$data = null]
{
	// Here you will receive data from the frontend roomleave event trigger.
	echo 'Hey ! I\'m a room leave EVENT callback' . PHP_EOL;
}

Khái niệm chính là chức năng gọi lại.

Bạn sẽ nhận được phản hồi vào chức năng xác định. Bạn có thể kích hoạt sự kiện từ mặt trước như bên dưới bằng cách sử dụng jQuery

    socket.send[JSON.stringify[{
        'type': 'roomleave',
        'room_name': targetName,
        'user_id': "buzz4rd"
    }]];

Nó sẽ kích hoạt chức năng bên dưới

public function _roomleave[$data = null]
{
	// Here you will receive data from fron tend roomleave event trigger.
	echo 'Hey ! I\'m a room leave EVENT callback' . PHP_EOL;
}

Bạn có thể kiểm tra trò chuyện phòng bằng Php WebSocket. Nó được xây dựng bằng cách sử dụng cái này

Lỗi 🐛 hoặc tính năng 💪

Được tự do mở một vấn đề hoặc gửi yêu cầu kéo

Hỗ trợ mua cho tôi một ly cà phê

Nay ban! Giúp tôi ra cho một cốc ☕!

Lập trình ổ cắm trong PHP là gì?

Lập trình ổ cắm là một cách kết nối hai nút trên mạng để giao tiếp với nhau.Một ổ cắm [nút] lắng nghe trên một cổng cụ thể tại IP, trong khi các ổ cắm khác đưa ra sang bên kia để tạo thành kết nối.Máy chủ tạo thành ổ cắm người nghe trong khi máy khách tiếp cận với máy chủ.a way of connecting two nodes on a network to communicate with each other. One socket[node] listens on a particular port at an IP, while other socket reaches out to the other to form a connection. The server forms the listener socket while the client reaches out to the server.

WebSocket trong codeigniter là gì?

Codeigniter WebSocket Thư viện.Nó cho phép bạn tạo các ứng dụng thời gian thực mạnh mẽ bằng cách sử dụng công nghệ WebSocket Ratchet [Socketo.me & Ratchet_Client].allows you to make powerfull realtime applications by using Ratchet [Socketo.me & ratchet_client] Websocket technology.

Ổ cắm rung rinh là gì?

Ổ cắm là một phương tiện giao tiếp hai chiều qua mạng.Điều này tương tự như giao tiếp HTTP, nhưng thay vì thực hiện một yêu cầu duy nhất và nhận được một phản hồi duy nhất, bạn để kênh mở để liên lạc thêm.a means of two-way communication over a network. This is similar to HTTP communication, but instead of making a single request and getting a single response, you leave the channel open for further communication.

Bài Viết Liên Quan

Chủ Đề