PHP socket消息通知
时间: 2023-07-09 17:14:56 浏览: 92
php实现websocket实时消息推送
在 PHP 中,可以使用 socket 实现消息通知。下面是一个简单的示例,演示如何使用 socket 在客户端和服务器之间传递消息:
服务器端代码:
```php
<?php
// 创建 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 绑定地址和端口
$address = '127.0.0.1';
$port = 8888;
if (!socket_bind($socket, $address, $port)) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 监听连接请求
if (!socket_listen($socket, 5)) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 等待连接
echo "Waiting for client to connect...\n";
$clientSocket = socket_accept($socket);
if (!$clientSocket) {
echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 从客户端接收消息
$msg = socket_read($clientSocket, 1024);
echo "Received message from client: $msg\n";
// 发送消息到客户端
$response = "Hello, client!";
socket_write($clientSocket, $response, strlen($response));
// 关闭 socket
socket_close($clientSocket);
socket_close($socket);
```
客户端代码:
```php
<?php
// 创建 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 连接服务器
$address = '127.0.0.1';
$port = 8888;
if (!socket_connect($socket, $address, $port)) {
echo "socket_connect() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 发送消息到服务器
$msg = "Hello, server!";
socket_write($socket, $msg, strlen($msg));
// 接收消息从服务器
$response = socket_read($socket, 1024);
echo "Received message from server: $response\n";
// 关闭 socket
socket_close($socket);
```
在上面的示例中,服务器端首先创建一个 socket 并绑定到指定地址和端口。然后等待客户端请求连接并接受连接。一旦连接建立,服务器从客户端读取消息并向客户端发送响应。最后关闭 socket。
客户端首先创建一个 socket 并连接到服务器。然后向服务器发送消息并从服务器读取响应。最后关闭 socket。
在实际中,您可能需要更复杂的代码来处理更复杂的消息通知场景。但是,这个简单的示例应该足以让您了解如何使用 socket 在 PHP 中实现消息通知。
阅读全文