1. 保证php开启sockets,找到php.ini,找到 ;extension=sockets 去掉前面的 ;
命令行测试是否开启:php c:\...\isSockets.php
isSockets.php
<?php
if(extension_loaded('sockets')){
echo "已开启";
}else{
echo "未开启";
}
?>
2.
目前较好的开发即时通讯的框架,推荐:workerman,and swoole 。
开发中。(使用了workerman)
服务器端,启动: 命令模式shell :php your/path/server.php
注意。传输模式的设置,默认传文本。如果开发语言等功能,设置arraybuffer
<?php
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Protocols\Websocket;
// 创建一个Worker监听2345端口,使用http协议通讯
$http_worker = new Worker("websocket://127.0.0.1:8000");
// $http_worker = new Worker("websocket://172.25.204.1:8000");
// 启动4个进程对外提供服务
$http_worker->count = 4;
$global_uid = 0;
$client = []; //保存客户端信息
$out = [];
// 当客户端连上来时分配uid,并保存连接,并通知所有客户端
function handle_connection($connection)
{
global $http_worker, $global_uid;
// 为这个连接分配一个uid
$connection->uid = ++$global_uid;
}
// 当客户端发送消息过来时,转发给所有人
function handle_message($connection, $data)
{
global $http_worker,$cli