Dalam pengaturcaraan rangkaian, TCP ialah protokol penting Dalam PHP, melaksanakan pelayan TCP bukan sahaja dapat meningkatkan kecekapan pengaturcaraan rangkaian, tetapi juga belajar daripada model ini untuk melaksanakan beberapa aplikasi rangkaian. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Swoft untuk melaksanakan pelayan TCP dengan cepat.
Swoft ialah rangka kerja rangkaian coroutine berprestasi tinggi PHP berdasarkan sambungan Swoole Ia melaksanakan coroutine yang serupa dengan bahasa Go, meningkatkan prestasi pengaturcaraan rangkaian PHP dan kecekapan.
Swoft mempunyai ciri-ciri berikut:
Sebelum menggunakan rangka kerja Swoft untuk melaksanakan pelayan TCP, anda perlu pasang alatan berikut:
Pertama, gunakan alat Komposer untuk mencipta projek Swoft:
composer create-project swoft/swoft swoft-project
Dalam projek app/Controller
Cipta fail TcpController.php
dalam direktori dengan kandungan berikut:
namespace AppController; use SwoftHttpMessageRequest; use SwoftHttpMessageResponse; use SwoftTcpServerAnnotationMappingTcpController; use SwoftTcpServerAnnotationMappingTcpMapping; /** * @TcpController() */ class TcpController { /** * @TcpMapping("echo") */ public function echo(Request $request) { $params = $request->getParams(); return $params['msg'] . " "; } }
Dalam pengawal, kami mentakrifkan kaedah echo
, yang menerima data yang dihantar oleh klien dan mengembalikan mesej yang sama.
Buat fail app/Server
dalam direktori TcpServer.php
Fail ini adalah pintu masuk untuk memulakan pelayan TCP :
namespace AppServer; use SwoftBeanAnnotationMappingBean; use SwoftLogHelperCLog; use SwoftTcpServerAnnotationMappingTcpServer; use SwoftTcpServerRequest; /** * @Bean() * @TcpServer(port=9999) */ class TcpServer { public function onReceive(Request $request) { $params = $request->getParams(); $msg = $params['data']; CLog::info('receive data:%s', $msg); $response = "received:" . $msg; return $response; } }
Dalam TcpServer
, kami menentukan port melalui @TcpServer
anotasi dan melaksanakan kaedah onReceive
untuk menerima data yang dihantar oleh pelanggan Dalam kaedah ini, kami boleh memajukan permintaan kepada pengawal yang ditentukan untuk melengkapkan logik perniagaan.
Laksanakan arahan berikut dalam baris arahan untuk memulakan pelayan TCP:
php bin/swoft tcp:start
Dalam terminal lain, gunakan telnet untuk menyambung ke TCP Ujian pelayan:
telnet localhost 9999 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. {"method":"echo","params":{"msg":"hello, swoft!"}} hello, swoft! Connection closed by foreign host.
Pelanggan menghantar sekeping data dalam format JSON ke pelayan Pelayan menghuraikan data dan memanggil kaedah echo
, mengembalikan data yang sama dan keluar sambungannya.
Melalui rangka kerja Swoft, kami boleh melaksanakan pelayan TCP dengan mudah, yang meningkatkan kecekapan pengaturcaraan rangkaian. Dalam aplikasi sebenar, kami boleh menyesuaikan dan mengembangkan program sampel ini mengikut keperluan perniagaan untuk melaksanakan aplikasi rangkaian yang lebih kaya.
Atas ialah kandungan terperinci Pembangunan PHP: Cara menggunakan Swoft untuk melaksanakan pelayan TCP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!