搜索
系统检测到您的用户名不符合规范:

tp5.0+workerman 群聊

浏览:1820 发布日期:2019年04月23日 分类:业务逻辑
群聊天 群内消息发送 这里就不搭建wokerman直接上代码
群聊天 群内消息发送
<?php
/**
* @ Copyright 2017-2018 VARIANT TECHNOLOGY CO.,LTD All Rights Reserved.
* Created by PhpStorm.
* @author [wolf]
* @version [版本号,2019年4月23日 9:46]
* @see [相关文件,类,函数]
* @since [产品/模块]
* @deprecated
*/


namespace app\user\controller;


use think\Controller;
use think\Db;
use think\worker\Server;
use Workerman\Lib\Timer;

class ChatController extends Server
{
protected $socket = 'websocket://127.0.0.1:3000';
protected $processes = 10;

/**
* 收到信息
*
* @param $connection
* @param $data
*/
public function onMessage($connection, $data)
{

$arr = json_decode($data, true);

global $worker;

if($arr['type'] == 1)
{//验证用户是否是群主

//建立聊天室
if(!isset($uid))
{
$uid = $arr['business_id'];//群id
}
$connection->uid = $uid;
$worker->uidConnections[$connection->uid] = $this->worker->connections;

foreach ( $this->worker->connections as $connection)
{
if($connection->uid == $uid)
{//向指定uid的用户发送消息
$connection->send($arr['content']);
}
}

}
else if($arr['type'] == 2)
{

if(!isset($uid))
{
$uid = $arr['a_business_id'];//群id
}
$connection->uid = $uid;
$worker->uidConnections[$connection->uid] = $this->worker->connections;
foreach ( $this->worker->connections as $connection)
{
if($connection->uid == $uid)
{//向指定uid的用户发送消息
$connection->send($arr['content']);
}
}
}
}

/**
*
* @param $connection当连接建立时触发的回调函数
*/
public function onConnect($connection)
{
$connection->uid = '';
}

/**
* 当连接断开时触发的回调函数
*
* @param $connection
*/
public function onClose($connection)
{
/*global $worker;
if(isset($uid))
{
// 连接断开时删除映射
unset($worker->uidConnections[$uid]);
}*/

}

/**
* 当客户端的连接上发生错误时触发
*
* @param $connection
* @param $code
* @param $msg
*/
public function onerror($connection, $code, $msg)
{
echo "error $code $msg\n";
}

/**
* 每个进程启动
*
* @param $worker
*/
public function onWorkerStart($worker)
{

}


//向所有验证的用户推送数据
public function broadcast($message)
{
global $worker;
foreach ($worker->uidConnections as $connection)
{
$connection->send($message);
}
}

}
收藏
草原的天空
积分:488 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /