walkor/phpsocket.io — 2.3k★ trên GitHub (PHP). A server side alternative implementation of socket.io in PHP based on workerman.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
A server-side PHP implementation of socket.io based on Workerman.
Notice: Only supports socket.io client >= v1.3.0 and <= v2.x. socket.io v3 and v4 are not supported.
Requires PHP >= 7.1 and Workerman >= 4.0 < 5.0. Workerman 5.x is not supported.
For the full server API, see socket.io/docs/v2/server-api.
Install
composer require workerman/phpsocket.io
Examples
Simple chat
start.php
<?php
use Workerman\Worker;
use PHPSocketIO\SocketIO;
require_once __DIR__ . '/vendor/autoload.php';
// Listen on port 2026 for socket.io clients
$io = new SocketIO(2026);
$io->on('connection', function ($socket) use ($io) {
$socket->on('chat message', function ($msg) use ($io) {
$io->emit('chat message', $msg);
});
});
Worker::runAll();
Another chat demo
Full source: examples/chat/start_io.php
<?php
use Workerman\Worker;
use PHPSocketIO\SocketIO;
require_once __DIR__ . '/vendor/autoload.php';
$io = new SocketIO(2026);
$io->on('connection', function ($socket) {
$socket->addedUser = false;
// When the client emits 'new message', this listens and executes
$socket->on('new message', function ($data) use ($socket) {
$socket->broadcast->emit('new message', [
'username' => $socket->username,
'message' => $data,
]);
});
// When the client emits 'add user', this listens and executes
$socket->on('add user', function ($username) use ($socket) {
// Note: global variables are used here for simplicity (demo only)
global $usernames, $numUsers;
$socket->username = $username;
$usernames[$username] = $username;
++$numUsers;
$socket->addedUser = true;
$socket->emit('login', ['numUsers' => $numUsers]);
$socket->broadcast->emit('user joined', [
'username' => $socket->username,
'numUsers' => $numUsers,
]);
});
// When the client emits 'typing', broadcast it to others
$socket->on('typing', function () use ($socket) {
$socket->broadcast->emit('typing', ['username' => $socket->username]);
});
// When the client emits 'stop typing', broadcast it to others
$socket->on('stop typing', function () use ($socket) {
$socket->broadcast->emit('stop typing', ['username' => $socket->username]);
});
// When the user disconnects
$socket->on('disconnect', function () use ($socket) {
global $usernames, $numUsers;
if ($socket->addedUser) {
unset($usernames[$socket->username]);
--$numUsers;
$socket->broadcast->emit('user left', [
'username' => $socket->username,
'numUsers' => $numUsers,
]);
}
});
});
Worker::runAll();
Enable SSL (HTTPS)
Requires phpsocket.io >= 1.1.1 and workerman >= 3.3.7
start.php
<?php
use Workerman\Worker;
use PHPSocketIO\SocketIO;
require_once __DIR__ . '/vendor/autoload.php';
$context = [
'ssl' => [
'local_cert' => '/your/path/of/server.pem',
'local_pk' => '/your/path/of/server.key',
'verify_peer' => false,
],
];
$io = new SocketIO(2026, $context);
$io->on('connection', function ($socket) {
echo "New connection: {$socket->id}\n";
});
Worker::runAll();
Acknowledgement callback
<?php
use Workerman\Worker;
use PHPSocketIO\SocketIO;
require_once __DIR__ . '/vendor/autoload.php';
$io = new SocketIO(2026);
$io->on('connection', function ($socket) {
$socket->on('message with ack', function ($data, $callback) {
if ($callback && is_callable($callback)) {
$callback(0);
}
});
});
Worker::runAll();
The chat example includes built-in server-side logging. When running in debug mode, connections, user activity, and messages are printed to the terminal in real time with color-coded output.
CI
This project uses GitHub Actions to run PHP_CodeSniffer on every pull request and push to master, ensuring the codebase follows the coding standard defined in phpcs.xml.
To run locally:
# Without Docker
composer install --dev
vendor/bin/phpcs src/
# With Docker
docker compose --profile tools run --rm phpcs
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/walkor/phpsocket.io là nguồn chính thức.
walkor/phpsocket.io có bao nhiêu sao?
walkor/phpsocket.io có 2.3k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/walkor/phpsocket.io. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
walkor/phpsocket.io có phải mã nguồn mở không?
Có — walkor/phpsocket.io phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/walkor/phpsocket.io.
walkor/phpsocket.io còn đang phát triển không?
Commit gần nhất trên walkor/phpsocket.io là 3 tháng trước (theo timestamp GitHub). Repo có 506 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
walkor/phpsocket.io là gì?
walkor/phpsocket.io (walkor/phpsocket.io) là dự án PHP trên GitHub. Theo mô tả gốc: A server side alternative implementation of socket.io in PHP based on workerman.
walkor/phpsocket.io so với các dự án Backend khác thế nào?
walkor/phpsocket.io được TopGit xếp vào nhóm Backend, với 2.3k sao GitHub và viết bằng PHP. Xem trang chủ đề Backend trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
Đọc đầy đủ README ở tab phía trên.
phpsocket.io có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về phpsocket.io.