文档章节

Workerman学习(以thinkphp5为例)

半缘修道半缘君丶
 半缘修道半缘君丶
发布于 04/10 10:00
字数 491
阅读 31
收藏 0

workerman简单实现步骤:

        将下载的Gateway版本放在vendor里面,

        再打开start_for_win.bat之后,在Events.php文件中OnConnect()中,sendToClient()函数是  向客户端client_id发送$send_data数据。如果client_id对应的客户端不存在或者不在线则自动丢弃发送数据。

public static function onConnect($client_id)
{
    // 向当前client_id发送数据
    // Gateway::sendToClient($client_id, "Hello $client_id\r\n");
    // 向所有人发送
    // Gateway::sendToAll("$client_id login\r\n");

    //将消息发送给指定的聊天对象 => 当前client_id
    Gateway::sendToClient($client_id,json_encode([
        'type'=>'init',
        'client_id'=>$client_id,
    ]));
}

在聊天页面的js里面:

console.log之后会发现

Client_id是workerman系统自动生成的聊天者的id,这就代表建立最基本的通信成功

Js在判断到收到message之后,用switch判断message的type类型,达到分辨信息类型的步骤

ws.send()作用是将数据发送给socket服务器(在Events.php里面接收)

 bindUid()是将client_id与uid绑定,以便通过Gateway::sendToUid($uid)发送数据,

通过Gateway::isUidOnline($uid)用户是否在线。uid解释:这里uid泛指用户id或者设备id,用来唯一确定一个客户端用户或者设备

点击发送按钮处理逻辑:

Message结合内容(fromid和toid,data表示用户发送的信息,type代表发送信息的类型等信息)

当返回类型是say,表示接收到了发送的type类型为say类型的信息,

sendToUid()表示:向uid绑定的所有在线client_id发送数据。

isUidOnline()表示:判断$uid是否在线,此方法需要配合Gateway::bindUid($client_uid, $uid)使用 

至此,一个简单的发送文字的简单通信步骤就完成了~

参考网易云课堂视频链接:https://study.163.com/course/courseMain.htm?courseId=1005015012

© 著作权归作者所有

半缘修道半缘君丶
粉丝 0
博文 21
码字总数 7133
作品 0
扬州
后端工程师
私信 提问
ThinkPhp5 | 模块分析

ThinkPhp5框架是一款基于MVC的轻量级开发框架,其模块化的搭建,简单有效,相比于之前的版本,是一次颠覆性的改变。本文,结合一些网站的常用功能,简要分析一下基本原理,小试牛刀一把。 相...

采风JS
2017/06/10
0
0
「ThinkPHP开发者周刊」第6期——好用的第三方类库

[ 本周读数 ] ——TIOBE 11 月程序语言排名 在 月公布的程序语言排行榜中,PHP语言排名第。PHP曾获得年度编程语言,最高的一次排名是年月排名第名,虽然,很多人越来越看衰PHP,但至今尚未跌...

流年
2018/11/26
0
0
ThinkPHP5中使用Workerman框架

ThinkPHP框架不多说,强悍之处不容置疑。有疑问看官方手册 Workerman框架也是非常强悍的(开发框架人的背景不是很清楚),官方是这样介绍的: Workerman,让你看到PHP不为人知的一面。 当然详...

老K8
2017/06/21
0
0
php workerman 异步通讯框架

提示workerman只是一个代码包,如果php环境满足要求,下载后即可使用,实际上没有安装过程。 workerman对php环境的要求是: 1、php>=5.3.3,可以运行命令 php -v 查看版本 2、Linux系统要求p...

bengozhong
2015/08/13
0
0
thinkphp5 2018 在线客服系统

WeLive是客服系统的快速解决方案,只需要引入一段js代码即可接入自己的系统,原业务代码无需任何更改。 您可以通过授权的方式获得WeLive所有源码,一次授权终身有效。 授权后将获得所有WeLiv...

哦了
2018/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP程序员必看!进阶学习工作最全书籍指南作参考

【初阶】知识与入门 01. 《PHP与MySQL程序设计(第4版)》 http://item.jd.com/10701892.html 02. 《深入浅出MySQL 数据库开发 优化与管理维护 第2版》 http://item.jd.com/11381295.html 0...

ITCare
8分钟前
9
0
go监控方案(1) -- 概述

概述 为什么需要监控 在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析。 在很多时候,我们可能需要了解整个系统在当...

solate
8分钟前
2
0
华泰面试和优必选

优必选:1、根据题目写测试用例;2、写JAVA小程序(如数组排序,1-10的求和);3、LNIUx命令 华泰证券:1、根据题目写测试用例;2、用基本语法写一个PYthon程序;3、JMETER有哪些流程,...

颜丽
9分钟前
1
0
Spring Boot 配置多源的 RabbitMQ

简介 MQ 是开发中很平常的中间件,本文讲述的是怎么在一个Spring Boot项目中配置多源的RabbitMQ,这里不过多的讲解RabbitMQ的相关知识点。如果你也有遇到需要往多个RabbitMQ中发送消息的需求...

innerpeacez
10分钟前
0
0
破解版的「谷歌访问助手」

今天呢,我分享一个破解版的[谷歌访问插件];这款插件主有两个特点: 能够正常使用,绿色无广告,不会出现篡改主页等问题; 使用中比较稳定,性能较好; 下面介绍以插件的具体配置过程: 1,...

元歌
15分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部