- 博客(30)
- 收藏
- 关注
原创 25、实现群聊
方案二、 map<群id> 优势是找用户ID非常快 劣势是发送信息时需要根据userid获取node,锁的频次太高。分析群id,找到加了这个群的用户,把消息发送过去 方案一、 map 优势是锁的频次低 劣势是要轮训全部map。1、当用户接入的时候初始化groupset。2、当用户加入群的时候刷新groupset。1、还需实现建群,加群的业务逻辑。
2023-07-22 08:41:05
160
原创 22、实现发送文字、表情包
弹出一个窗口, 选择按钮,进行录音操作,获得录音文件 上传到服务器, 获得一个连接地址 调用 sendaudiomsg方法 开始发送流程。弹出一个窗口, 选择按钮,选择视频 上传到服务器, 获得一个连接地址 调用 sendaudiomsg方法 开始发送流程。弹出一个窗口, 选择图片,上传到服务器 获得一个连接地址 调用 sendpicmsg方法开始发送流程。弹出一个窗口, 选择图片获得一个连接地址 调用 sendpicmsg方法开始发送流程。前端所有的操作都在拼接数据 如何拼接?二、 前端处理核心方法。
2023-07-22 08:23:49
527
原创 21、设计可以无限扩张业务场景的消息通讯结构
里面携带 谁发的-userid 要发给谁-dstid 这个消息有什么用-cmd 消息怎么展示-media 消息内容是什么-(url,amout,pic,content等)用户2向用户3发送文字消息hello。前端通过websocket发送。json格式的字符串。
2023-07-22 08:15:31
105
原创 20、接入websocket并实现最基础的文字通讯
首先下载webscoket相关包go get -u github.com/golang/net/webscoket。websocket包下载指令go get github.com/gorilla/websocket。下载 第三方集合包go get -u gopkg.in/fatih/set.v0。2.在main的go中定义一个路由,形成映射关系。1.新建controller/chat.go。
2023-07-18 09:41:08
256
原创 19、显示好友列表和群
在service/init.go中自动同步模型的结构体和数居库的表结构生成映射的关系。service下contact.go自动添加好友业务逻辑。封装第9行代码的util.Bind方法。args目录下的contact.go。会发现调用的一些包没有,则进行扩展。
2023-07-18 01:03:41
519
原创 18、接入聊天主页面
控制器里实现对service层代码的调用及逻辑处理。运行完对结果进行测试,登录成功进行弹框url地址。修改成功之后进行跳转页面,直接进行跳转。用户名密码输入正确,跳转效果图。前端对返回的结果集进行拼接。查看接口相应的返回数据。获得id和token。
2023-07-18 00:54:49
91
原创 15、以注册为例展示对service层的调用
需要使用以下解决方案,以下方法可以方法可以自动创建表结构。发现返回的结果集没有token,进行处理下token。启动服务,如果服务启动失败,则按照以下步骤进行排错。在main.go中定义注册路由和注册方法。如果启动服务报以下错误,说明没有表结构。之后在请求就可以得到一些相关信息。再次运行发现token已经存在了。
2023-07-18 00:16:15
103
原创 13、使用xorm操作数据库---建立用户模型&数据库增删改查基本API
新建model层的user文件定义用户结构体//用户id//手机号 唯一的//用户密码 f(plainpwd+salt),MD5//头像//性别//昵称// 随机数//是否在线//前端用户登录鉴权 chat?//统计每天用户增量时间在模型层定义性别常量及使用三、定义服务层服务层service,专门用来存放数据库业务服务的,如:注册、登录,CURD相关API//三、定义和业务相关的服务服务层service,专门用来存放数据库业务服务的,如注册、登录。
2023-07-17 22:26:54
304
原创 11、懒人必备20行代码实现全部模板页面自动渲染并接入
思考一下, 现在只是两个页面都这么多代码,那想一想有没有一劳永逸的办法呢?而且每次运行代码的内容基本上都差不多。可不可以把这些共同代码抽象提炼出共同的方法里呢?新建一个test文件测试一下是否好使,记得重启,后续没有修改main.go的代码,看一下是否可以生效。答案是肯定的,接下来给大家展示一个 万能的模板渲染函数。运行发现没有任何问题,能够渲染成功。
2023-07-17 22:15:35
209
原创 9、实现页面展示及指定资源文件支持
经测试,通过命令行可以直接报漏出代码,如果main.go是敏感的代码,则不安全,那应该怎么办呢?上面的动态文件404,下面的静态文件内容正常输出,说明成功了。因为没有提供静态文件的支持,接下来编写提供静态资源支持的代码。运行服务,发现页面未找到,这是为什么呢。提供指定目录的静态文件支持。
2023-07-17 21:42:11
60
原创 excel导入导出
导出(Yii框架中):header("Content-type:application/vnd.ms-excel");header("Content-Disposition:attachment;filename=123.xls");$connection=\Yii::$app->db;$arr=$connection->createCommand("select * from re
2016-09-21 19:34:45
254
原创 git与svn cvs对比
git是一个分布式版本控制软件,与常用的版本控制工具如CVS、Subversion不同,支持离线开发,离线Repositor。强大的分支功能,适合多个独立开发者协作。速度块。如果拥有CVS或者SVN的使用背景,那么更熟悉的方法是客户端-服务器端模式,所有的文件仓库(repository)都是存放在服务器上的,用户需要在本地安装客户端去服务器上的项目中获取旧版本,提交新版本。GIT抛弃了这种模式
2016-09-21 11:48:14
2127
转载 大型网站必须要考虑的问题
这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必
2016-09-21 11:44:52
304
原创 Centos7安装redis
安装之前没有安装GCC请先安装$ yum install gcc-c++$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make make完后 redis-2.8.17目录下会出现编译后的redis服务程序
2016-09-17 17:20:07
279
转载 apache和nginx开启https
1.安装mod_ssl和openssl yum -y install mod_ssl openssl 2.建立服务器密钥 mkdir /etc/httpd/conf.d/ssl.key/ cd /etc/httpd/conf.d/ssl.key/ openssl genrsa -out server.key 1024 3.建
2016-09-17 15:31:15
308
原创 YSlow团队的23条“Web性能最佳实践和规则”
1、尽可能减少HTTP请求次数2、使用CDN3、避免空src和href标签4、加入Expires或Cache-Control Header5、使用Gzip压缩6、在html文件顶部放置样式表7、在html文件底部放置JavaScript脚本8、避免使用CSS表达式9、使用外部JavaScript和CSS外部文件10、减少使用DNS查找次数11、精简JavaS
2016-09-17 15:29:02
234
原创 抢红包流程
首先,分析一下。现如今,各大电商系统推出的各种活动非常火爆,比如秒杀,定时抢购等等这些。都能吸引消费者的眼球。其实,红包也就跟秒杀,定时抢购这些一个需求,都是解决高并发的问题。1>分析一下红包的思路那么举个例子。10块钱包10个红包。我们选择10块钱,包10个包,那么在我们分包之后,就用算法随机的将这10个包随机的分配。用户在抢的时候,10个包是已经分好的。很多人都会认为,用户抢一
2016-05-19 13:51:22
1133
原创 echop二次开发——电子票
先展示下效果:后台实现过程一、 添加菜单项:路径admin\includes\inc_menu.php$modules['18_ticket_manage']['01_ticket_list'] = 'ticket.php?act=list';$modules['18_ticket_manage']['02_ticket_add'] = 't
2016-05-18 14:48:28
8829
原创 MYSQL大全(sql语句,基本命令操作)
一、用户创建、权限、删除1、连接MySql操作连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车)打开cmd,输入mysql -h 127.0.0.1 -u root -p 然后输入密码。就可以连接到本地的MySql数
2016-05-18 11:06:55
580
转载 CI中如何实现伪静态
第一步:在根目录下(index.php)同一级目录下建立一个.htaccess这个文件文件内容(即红色标识所显示的内容)URI 类 和 URL 辅助函数 包含了一些函数可以让你更容易的处理 URI 数据,另外,你的 URL 可以通过 URI 路由 进行重定向从而得到更大的灵活性。移除 URL 中的 index.php默认情况,你的 URL 中会包含 in
2016-05-18 10:48:30
619
原创 ecshop开发中首次登陆增加会员积分
首先说一下需求,需求如下:接下来说一下整体的思路:我们应该认识到,积分是买家的,所以积分增加其实就是在前台登录的时候才会有效。而商家是管理后台的,所以后台只是展示一下前台用户登录后的信息。我在这里说两种简单的方法,memcache和查询数据库。后台添加会员积分栏目——>后台会员积分模板展示——>在前台登录的时候判断时间——>后台增加积分其实难点也就是第三步,判断登录
2016-05-18 09:57:20
1491
原创 base64转码(简单的get方式图片上传,模拟app接收图片)
首先,我们选择用get方式接值,所以要选取一张小一点的图片。将图片放在自己的根目录下任意位置,新建pictur.php和get_pictur.php,在目录下建img文件夹(存储图片)。在picture.php中接收图片并且将图片用base64加密。给一个a标签,让页面跳转到get_picture.php中(模拟app客户端)。在get_picture.php中首先接值
2016-05-17 15:02:57
2830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人