Maison > cadre php > Workerman > workman+thinkphp crée une salle de discussion simple

workman+thinkphp crée une salle de discussion simple

藏色散人
Libérer: 2020-01-14 14:39:06
avant
4418 Les gens l'ont consulté

La colonne suivante du tutoriel ouvrier vous présentera comment créer un salon de discussion simple. J'espère qu'il sera utile aux amis dans le besoin !

workman+thinkphp crée une salle de discussion simple

1 : L'environnement est sous fenêtre, pensez à PHP3.2

2 : Téléchargez GatewayWork et mettez-le dans

workman+thinkphp crée une salle de discussion simple

Répertoire

3 : Puis double-cliquez pour ouvrir

workman+thinkphp crée une salle de discussion simple

Ce fichier ouvre le service

4 : Toute la logique est en

workman+thinkphp crée une salle de discussion simple

Dans le fichier Events.php,

5 : Lorsque l'utilisateur se connecte au serveur, déclenchez

workman+thinkphp crée une salle de discussion simple

, initialiser, envoyer client_id

6 : Lors de la réception du message,

workman+thinkphp crée une salle de discussion simple

démarre cette méthode, le message correspond aux données envoyées par le client

7 : Le code ci-joint

/**
 * 当客户端发来消息时触发
 * @param int $client_id 连接id
 * @param mixed $message 具体消息
 */
public static function onMessage($client_id, $message)
{
     //1:收到消息之后转成array()
     $data = json_decode($message,true);
     if(!$data){
       return;
     }
     //2:判断类型,bind是client_id与用户id绑定 
     //say 发送消息的事件
     switch ($data['type']) {
       //绑定
       case 'bind':
           $from_id = $data['from_id'];
           //把获取的到用户id与client_id进行绑定
           Gateway::bindUid($client_id,$from_id);
           return;
       //发送文字消息
       case 'say':
           //获取到客户端传过来的信息
           $text = $data['data'];
           $from_id = $data['from_id'];
           $to_id = $data['to_id'];
           //封装消息
           $info = array(
             'type'=>'text',
             'data'=>$text,
             'from_id'=>$from_id,
             'to_id'=>$to_id,
             'time'=>date('Y-m-d h:i:s',time()) 
           );
           Gateway::sendToUid($to_id,json_encode($info));
           return;
       //发送图片
       case 'img':
           $from_id = $data['from_id'];
           $to_id = $data['to_id'];
           $img = $data['img'];
           //封装消息
           $info = array(
             'type'=>'img',
             'data'=>$img,
             'from_id'=>$from_id,
             'to_id'=>$to_id,
             'time'=>date('Y-m-d h:i:s',time()) 
           );
           Gateway::sendToUid($to_id,json_encode($info));
           return;
     }
     //推送给指定的uid
     // 向所有人发送 
     // Gateway::sendToAll(json_encode($info));
}
Copier après la connexion

peut facilement réaliser un échange de messages point à point.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal