服务端代码
<?php
//websocket服务器
//问题:
//1.消息发送,收件方可以有多人
//2.没有在线的发送不了,上线后发送
//3.发送失败,返回信息
//1.设置名称和得到当前没有接收的信息:'{"name":"index","operation":"setget"}';
//2.发送信息,to为数组'{"from":"index","to":{"0":"shijie","1":"ninini"},"info":"xxxxxxxx","operation":"sendinfo"}';
//基本思路:当连接完成时后,客户端发送数据,将自己链接重新命名,并查看redis中是否有自己未接收的信息,如果有就返回,每个链接重新命名后都是唯一的,当发送信息时,查看是否有当前客户端是否有链接,如果有链接就发送过去,并将status值改为ok,没有发送则为no,将二维数组存入redis中
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
$websocket=new Worker('websocket://0.0.0.0:9501');
$redis=new Redis();
$redis->connect('x.x.x.x');
$redis->auth('sincityall');
$websocket->onWorkerStart=function($worker){
$i=0;
if($i<1){
echo "websocket服务已经启动\n" ;
}
++$i;
};
$websocket->onConnect=function($connection){
echo "有客户端已经连接\n";
};
$websocket->onMessage=function($connection,$data)