iris+websocket_neffos websocket_luopiao19岁青少年软件从业人员的博客-CSDN博客


本站和网页 https://blog.csdn.net/qq_37575994/article/details/127125550 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

iris+websocket_neffos websocket_luopiao19岁青少年软件从业人员的博客-CSDN博客
iris+websocket
luopiao19岁青少年软件从业人员
已于 2022-09-30 16:29:35 修改
522
收藏
分类专栏:
GO
文章标签:
websocket
iris
于 2022-09-30 16:28:36 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37575994/article/details/127125550
版权
GO
专栏收录该内容
18 篇文章
0 订阅
订阅专栏
目的:服务端主动推送信息到客户端
package main
import (
"fmt"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/websocket"
"github.com/kataras/neffos"
"log"
"time"
type MyWebSocket struct {
ws *neffos.Server
conns map[*neffos.Conn]string//map的value存储uid,用于区分用户
func NewSocket() *MyWebSocket {
ws := MyWebSocket{
conns: make(map[*neffos.Conn]string),
return &ws
// SetUID 设置用户信息
func (this *MyWebSocket) SetUID(con *neffos.Conn, uid string) {
myWebSocket.conns[con] = uid
// DelConn 移除连接
func (this *MyWebSocket) DelConn(c *neffos.Conn) {
delete(this.conns, c)
var myWebSocket *MyWebSocket
func main() {
app := iris.New()
myWebSocket = NewSocket()
Handle(app, "/msg")
go func() { //推送消息
defer func() {
if err := recover(); err != nil {
log.Printf("recover:%v", err)
}()
time.Sleep(1 * time.Minute)
Send("308857")
}()
app.Run(iris.Addr(":8080"))
func Handle(app *iris.Application, path string) {
myWebSocket.ws = websocket.New(websocket.DefaultGorillaUpgrader, websocket.Events{
websocket.OnNativeMessage: func(nsConn *websocket.NSConn, msg websocket.Message) error {
log.Printf("Server got: %s from [%s]", msg.Body, nsConn.Conn.ID())
return nil
},
})
//连接时设置用户信息
myWebSocket.ws.OnConnect = func(c *websocket.Conn) error {
log.Printf("[%s] Connected to server!", c.ID())
ctx := websocket.GetContext(c)
uid := ctx.URLParam("uid")
myWebSocket.SetUID(c, uid)
return nil
myWebSocket.ws.OnDisconnect = func(c *websocket.Conn) {
myWebSocket.DelConn(c)
log.Printf("[%s] Disconnected from server", c.ID())
myWebSocket.ws.OnUpgradeError = func(err error) {
log.Printf("Upgrade Error: %v", err)
app.Get(path, websocket.Handler(myWebSocket.ws))
// Send 给指定用户发送消息
func Send(uid string) {
cons := myWebSocket.conns
for con, u := range cons {
if u == uid {
isSuc := con.Write(websocket.Message{
Body: []byte(fmt.Sprintf("主动推送")),
})
if isSuc {
log.Print(uid, "成功")
/*
群发本质上就是给多条连接推送信息
*/
测试工具:postman
测试结果:
luopiao19岁青少年软件从业人员
关注
关注
点赞
收藏
觉得还不错?
一键收藏
打赏
知道了
评论
iris+websocket
go语言使用iris+websocket实现服务端主动推送信息到客户端,经常结合消息队列,广泛应用于消息更新、新商品推送、群聊等
复制链接
扫一扫
专栏目录
websocket 给指定用户发送聊天消息
03-30
websocket 给指定用户发送聊天消息,Java,8080端口,
iris:最快的HTTP2 Go Web框架。 AWS Lambda,gRPC,MVC,唯一路由器,Websocket,会话,测试套件,依赖注入等。 expressjs和laravel的真正继承者|谢谢https:github.comkatarasirisissues1329 |
02-03
新闻
这是开发中的分支。 请继续关注即将发布的 。 寻找稳定的版本? 转到。
立即尝试正式的!
Iris Web框架
Iris是一个用于Go的快速,简单但功能齐全且非常有效的Web框架。
它为您的下一个网站或API提供了精美表达和易于使用的基础。
简单处理程序package main
import "github.com/kataras/iris/v12"
type (
request struct {
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
respo
参与评论
您还未登录,请先
登录
后发表或查看评论
具有Go语言编写的优雅API的现代,快速,可扩展的Websocket框架-Golang开发
05-26
Neffos是一个跨平台的实时框架,具有用Go语言编写的富有表现力的优雅API。
Neffos通过减轻实时后端和前端应用程序中使用的常见任务来减轻开发过程中的痛苦。关于neffos Neffos是一个跨平台的实时框架,具有用Go语言编写的表达力强,优雅的API。
Neffos通过减轻实时后端和前端应用程序中使用的常见任务来减轻开发的痛苦,例如:使用redis或nats进行横向扩展*自适应请求升级和服务器拨号确认命名空间房间广播事件驱动的体系结构请求-响应体系结构错误意识异步广播超时编码重新连接现代neffos API cli
go websocket游戏框架_使用iris和websocket开发简单的页面访问次数记录功能
weixin_42603332的博客
02-03
509
引言  Iris 框架是用 Go 编写的一款高性能 web 框架,它的性能仅次于 gin,但高于 beego 框架。Iris 框架里内置 websocket 模块,可以实现 websocket 服务器,核心是封装了 neffos 开源模块。  Websocket 可实现全双工通信,也就是客户端和服务器在建立连接之后,可以互相接收和发送消息,具有长连接的特性。可以利用 websocket 实现移动端...
[golang]A modern, fast and scalable websocket framework with elegant API written in Go
浩秦的博客
09-25
162
A modern, fast and scalable websocket framework with elegant API written in Gohttp://bit.ly/neffos-wiki
https://github.com/kataras/neffos
About neffos
Neffos is a cross-platform real-...
【GO】13.Iris WebSocket 实例
chen_peng7的博客
05-31
4641
iris websocket服务端
package main
import (
"fmt"
"github.com/kataras/iris"
"github.com/kataras/iris/websocket"
func main() {
app := iris.New()
app.Get("/", func(ctx iris.Context) {
ctx....
go-iris-websocket 简单聊天通信
Ango_的专栏
05-05
2360
基于go的websocket大多使用gorilla/websocket
iris也提供了websoket的封装,github.com/kataras/iris/v12/websocket
不过iris官方给的示例基本上都是依赖官方的js库实现的neffos.js
Neffos.js对websocket进行了封装,主要是房间进入和离开等事件的绑定,
对于消息的传递也使用了自己定义的格式,不同的字段使...
Golang Iris Websocket 跨域问题
qq_42215697的博客
12-24
868
问题描述
在尝试使用iris中的websocket搭建一个实时通讯聊天的demo时,出现一个Upgrade Error错误,一个跨域问题,网上说要修改golang中的websocket upgrader 配置,但是不知道从哪改起。最后在一个项目中看到了解决方案。
Upgrade Error: websocket: request origin not allowed by Upgrader.CheckOrigin
解决方案
重写gorilla的部分内容,在引入自己所创建的gorilla包
gorilla包
Golang web Iris框架mvc下使用websocket
weixin_43825411的博客
03-30
815
前言
golang后端开发过程中遇到一些处理文件数据的接口,返回时间太长导致前端超时,就准备使用websocket来实现前后端通讯。iris官方给的websocket包里面的教程并没有涉及mvc的,改了很久都没法实现,就用了原生的websocket。前些天偶然在mvc包底下发现了websocket的范例,于是就学了下。发现教程并不能跑通,去看了github里面的反馈,https://github.com/kataras/neffos/issues/11 ,是跨域的问题,根据开发者的回复,修改了代码。
版本
Iris Web Framework:Go最快的社区驱动的Web框架-开源
04-26
Iris是一个用Go语言编写的快速,功能齐全且具有未来派风格的Web框架。 它是迄今为止制作最快的HTTP / 2 Web框架,既高效又简单。 Iris为您的下一个网站,API或分布式应用程序提供了精美而易用的基础。 Iris附带了Webassembly,带有公共域的自动HTTPS,MVC,会话,缓存,版本控制API,问题API,Websocket,依赖注入等。 它也与标准库和第三方中间件软件包完全兼容。 Iris是开放源代码和跨平台的,因此您只需编写一次即可在最小的机器功耗下运行。
前端项目-iris-ws.zip
09-02
前端项目-iris-ws,在名为iris的golang web框架中使用的websocket包的客户端库。
webSocket基于spring boot实现聊天
05-31
通过webSocket实现点对点,群聊,以及系统消息通讯,redis队列实现离线消息。
基于websocket实时聊天记录Demo
12-12
一个基于websocket实时聊天记录代码Demo,亲测很好用,可以学习一下。
Iris框架
01-20
支持定制事件的高可扩展性Websocket API,其API类似于socket.io 带有GC, 内存 & redis 提供支持的会话 强大的中间件和插件生态系统 完整 REST API 能定制 HTTP 错误 源码改变后自动加载(热重启) 1 安装 注意
golang实战开发之基础配置篇:拓展学习:iris框架介绍和使用技巧
no_reg的博客
01-24
940
Iris 是一款 Go 语言中用来开发 web 应用的框架,该框架支持编写一次并在任何地方以最小的机器功率运行,如 Android、ios、Linux 和 Windows 等。该框架只需要一个可执行的服务就可以在平台上运行了。
Iris以简单而强大的api而闻名。 除了Iris为您提供的低级访问权限。 Iris同样擅长MVC。 它是唯一一个拥有MVC架构模式丰富支持的Go Web框架,性能成本接近于零。
Iris为您提供构建面向服务的应用程序的结构。 用Iris构建微服务很容易。
在 iris 框架的官方网
iris-client:用于Iris服务的EOSIO Websocket订阅客户端
05-06
虹膜客户IrisClient是一个Websocket客户端,可以订阅来自基于EOSIO的区块链的实时数据流。 它使用频道/主题结构。 频道可以是动作或行,主题描述IrisClient想要接收流的特定动作。安装npm install @caleos/iris-...
示例:此存储库包含有关Iris Web Framework的小型实用示例
02-03
Websocket 依赖注入 MVC 桌面应用 中间件 跑 从安装Go编程语言,版本1.15+。 并将其复制粘贴到您的$GOPATH/src/github.com/iris-contrib/examples 使用go get -u github.com/kataras/iris/v12@v12.2.0-alpha2安装...
go_init:一个用go组织项目结构,主要包括杜松子酒,goredis,gorm,websocket,rabbitmq等。
02-03
这是一个基于gin搭建的一个包含gorm, goredis,rabbitmq,websocket等操作相关操作的项目结构。 主要提供一些库和组件的实现案例,以及项目开发部署,发布,执行等流程。纯属个人兴趣,学习整理过程, 如有发现不合理...
netty +websocket
最新发布
04-20
开发中如何实现消息的推送和广播?
对于实现消息推送和广播,可以使用WebSocket协议和Netty框架进行开发。使用WebSocket可以建立长连接,实现服务器主动向客户端推送消息的功能。在Netty中,可以使用WebSocketServerProtocolHandler类来处理WebSocket请求,同时还可以使用ChannelGroup来管理所有连接的客户端,从而实现消息的广播。使用ChannelGroup可以将所有连接的客户端保存在一个组中,在需要进行广播操作时,将消息发送到组内所有连接的客户端即可。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
luopiao19岁青少年软件从业人员
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
103
原创
8万+
周排名
8万+
总排名
3万+
访问
等级
1300
积分
16
粉丝
65
获赞
评论
46
收藏
私信
关注
热门文章
eclipse项目上带有红色感叹号和黄色感叹号的原因
6847
Java操作MongoDB简单demo以及操作配置文件demo
3182
Mongodb批量修改、查询
2289
在本地以太坊私链上,使用go调用智能合约,获取事件日志
1798
证书模式支付宝支付接口demo 沙箱
946
分类专栏
GO
18篇
数据结构与算法实现-C语言
8篇
Redis
2篇
PostgreSQL
1篇
MongoDB
2篇
Linux
6篇
智能合约
2篇
数据库系统以及计算机网络知识点及理解
12篇
中间件
3篇
JVM
3篇
java基础
27篇
JavaWeb基础及常用框架
17篇
python
1篇
java微信小程序
1篇
C#初学
1篇
错误集锦
6篇
最新评论
内部排序(C语言)
AI玩游戏的萝卜:
腻害
关于日志文件的使用
ctotalk:
加油
浅谈Redis配置
ctotalk:
谢谢分享,不错
ubuntu安装redis全过程
wujianqinjian:
有趣,感谢博主分享
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
串的模式匹配算法
链队的实现
顺序栈及中缀转后缀表达式的实现
2023年6篇
2022年13篇
2021年4篇
2020年9篇
2019年43篇
2018年27篇
2017年1篇
目录
目录
分类专栏
GO
18篇
数据结构与算法实现-C语言
8篇
Redis
2篇
PostgreSQL
1篇
MongoDB
2篇
Linux
6篇
智能合约
2篇
数据库系统以及计算机网络知识点及理解
12篇
中间件
3篇
JVM
3篇
java基础
27篇
JavaWeb基础及常用框架
17篇
python
1篇
java微信小程序
1篇
C#初学
1篇
错误集锦
6篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
luopiao19岁青少年软件从业人员
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值