golang gin框架gorilla的websocket小案例
golang gin框架中gorilla的websocket案例
在gin框架下
导入包
"github.com/gorilla/websocket"
r.GET("/test", test)
//webSocket请求haha 返回heihei
func test(c *gin.Context) {//升级get请求为webSocket协议ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)if err != nil {return}defer ws.Close()for {//读取ws中的数据mt, message, err := ws.ReadMessage()if err != nil {break}if string(message) == "haha" {message = []byte("heihei")}//写入ws数据err = ws.WriteMessage(mt, message)if err != nil {break}}
}
在谷歌浏览器里添加一个插件(Simple WebSocket Client),来测试自己写的api,
URL: ws://127.0.0.1:8081/test
//前后端交互的小案例
上代码:
package main import ( "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "net/http"
) var upGrader = websocket.Upgrader{ CheckOrigin: func (r *http.Request) bool { return true },
} func test(c *gin.Context) { //升级get请求为webSocket协议ws, err := upGrader.Upgrade(c.Writer, c.Request, nil) if err != nil { return } defer ws.Close() for {//读取ws中的数据 mt, message, err := ws.ReadMessage() if err != nil { break } if string(message) == "haha" { message = []byte("heihei") } //写入ws数据err = ws.WriteMessage(mt, message) if err != nil { break } }
} func main() { bindAddress := "localhost:8081" r := gin.Default() r.GET("/test", test) r.Run(bindAddress)
}
js代码:
<script>
var ws = new WebSocket("ws://localhost:8081/test");
//连接打开时触发
ws.onopen = function(evt) { console.log("Connection open ..."); ws.send("Hello WebSockets!");
};
//接收到消息时触发
ws.onmessage = function(evt) { console.log("Received Message: " + evt.data);
};
//连接关闭时触发
ws.onclose = function(evt) { console.log("Connection closed.");
}; </script>
golang gin框架gorilla的websocket小案例相关推荐
- [golang gin框架] 27.Gin 商城项目-购物车
1.先来看一个问题 购物车数据保持到哪里? 1.购物车数据保存在本地 (cookie或者 redis缓存中),下面统一保存到cookie中,保存到redis中和cookie中逻辑步骤其实都是一样的 2 ...
- [golang gin框架] 24.Gin 商城项目-redis讲解以及操作
一.reids相关文章 Redis五种数据类型及其应用场景 REDIS中的缓存穿透,缓存击穿,缓存雪崩原因以及解决方案 redis实现用户签到,统计活跃用户,用户在线状态,用户留存率 [golang ...
- [golang gin框架] 4.自定义Model以及Gin 文件上传
一.Gin 中自定义 Model 关于 Model 如果应用非常简单的话,我们可以在 Controller 里面处理常见的业务逻辑,但是如果 有一个功能想在多个控制器.或者多个模板里面复用的话,那么就 ...
- [golang gin框架] 6.Gin GORM简介以及安装
介绍 GORM 是 Golang 的一个 orm 框架,简单说,ORM 就是通过实例对象的语法,完成关系型 数据库的操作的技术,是"对象-关系映射"(Object/Relation ...
- [golang gin框架] 29.Gin 商城项目-用户登录,注册操作
一.用户登录,注册界面展示说明 先看登录,注册界面以及相关流程,再根据流程写代码,一般网站的登录,注册功能都会在一个页面进行操作,还有的是在几个页面进行操作,这里讲解在几个页面进行注册的操作,步骤如下 ...
- [golang gin框架] 16.Gin 商城项目-商品模块数据表ER图关系分析
1.数据表ER图 2.数据表相关 (1).商品分类表相关 1).数据表 -- ---------------------------- -- Table structure for goods_cat ...
- golang gin框架源码分析(二)---- 渐入佳境 摸索Engine ServeHTTP访问前缀树真正原理
文章目录 全系列总结博客链接 前引 golang gin框架源码分析(二)---- 渐入佳境 摸索Engine ServeHTTP访问前缀树真正远原理 1.再列示例代码 从示例代码入手 2.r.Run ...
- Golang gin框架
gin框架学习 一.Gin 介绍 二.Gin 环境搭建 三.golang 程序的热加载 安装fresh 库 四.Gin 框架中的路由 4.1 路由概述 4.2 简单的路由配置 4.3 动态路由 4.4 ...
- GinCMS 使用golang Gin框架xorm开发的小型内容管理系统
系统介绍 服务器端:使用GoLang,基于Gin框架.MySQL数据库.用到的组件xorm. 前端展示:使用基于LayUI的layuicms.用到的第三方组件authtree.treeTable. G ...
最新文章
- php 将内容中的图片的域名,php给编辑器中的图片地址添加域名
- 微信黑科技-推荐系统,一文带你看懂为什么微信推荐这么快?
- RHCS套件实现高可用负载均衡集群(三)——共享存储
- Oracle NVL与Coalesce函数的区别
- (数据库系统概论|王珊)第九章关系查询处理和关系优化-第一节:查询处理
- 成为linux全栈工程师:2019.05.25
- 实现弹出窗口并转到另一个页面
- 安卓自定义注解支持和示例实现
- pytorch tensor操作:tensor与numpy转换
- linux快捷键停止抓包命令,【linux命令】Linux抓包命令tcpdump以及常见抓包使用方法...
- AMOS软件介绍开篇;草堂君给数据分析学习者的几点建议
- 路由器DNS根域名解析失败
- 广东户外徒步指南 持续更新
- 复杂网络——常见的论文下载和真实数据集下载网站
- 天天在做大数据,你的时间都花在哪了
- 学生学号判断专业班级
- 短信转发器 SmsForwarder,备用机必备神器,开源免费
- 多线程学习-day-07CountDownLatch、CyclicBarrier
- Matlab软件的熟悉
- Cesium实现动态绘制轨迹线
热门文章
- Autodesk Maya 2018.6 中文特别版 Mac 顶级三维动画制作工具
- HTTP缓存的深入介绍:Cache-Control和Vary
- Collaborative Spatiotemporal Feature Learning for Video Action Recognition 论文笔记
- twctf_2018_bbq
- TCP序列号和确认号
- 只读事务是否做无用功?
- 打造爆款产品只需四步,学会你也能爆单
- 学好C语言,你只需要这几句口诀!
- python画蜡烛图_Python量化交易-绘制蜡烛图 !这个图不像你的钱哦!
- 项目开发流程(简述)