Golang Go语言中哪里有 websocket 框架对比

发布于 1周前 作者 htzhanglong 来自 Go语言

Golang Go语言中哪里有 websocket 框架对比
新接手的 go 应用里用到了 gorilla websocket,随手查了一下发现 golang 的 x 包里还有个 net/websocket 。
网上没找到对比文章,有大佬能简单讲讲么?比如性能,稳定性,使用难易度之类的。
或者给个提示去哪里查

13 回复

首先别说查不到,网上一堆,换个姿势试试
说结论:
1 、别用 x 包的 websocket
2 、目前 golang 最简单易用的 websocket 框架就是 gorilla 了
3 、gorilla 的 websocket 如果连接数上千过万,会存在问题
4 、还有另外一个 websocket 裤子性能、内存各方面说是很厉害,但易用性比较差,名字记不住,自己查
5 、除非需要与前端进行全双工业务,否则别用 websocket

更多关于Golang Go语言中哪里有 websocket 框架对比的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


了解了,感谢点拨🙏🏻

orilla 的 websocket 如果连接数上千过万,会存在问题: 这么差

上千就差的话给出一下证据?

gorilla 是目前通用性最强的,go 官方的包里好像也推荐使用 gorilla 。追求性能极致,不接受一个连接两个 routine 的或每个连接一个读 routine 的,要使用其它的包。比方说网上有篇出名的如何用 go 同时处理百万 websocket 连接。

gorilla/websocket 在找新的维护人,迭代停滞,许久才有一些爱好者提交的小修复,不过除了它也没有更好的框架了。

github.com/googollee/go-socket.io
用的这个结合 gin 做的 server,不过我们这系统没啥业务量,暂时也不知道有啥性能上的瓶颈

我用 x 包的 websocket 实现的 webssh 各种完美,
gorilla 的 各种问题😅

在Go语言中,存在多个优秀的WebSocket框架,每个框架都有其独特的特点和适用场景。以下是一些主要的WebSocket框架对比:

  1. Echo

    • 特点:易用且功能丰富,适合大多数应用。
    • 优势:提供了高性能和灵活的路由机制,支持动态路由和丰富的中间件。
  2. Gorilla WebSocket

    • 特点:提供了低级的API和可扩展性,适合复杂应用。
    • 优势:文档完善,社区活跃,功能全面,支持跨域访问等。
  3. fasthttp

    • 特点:高性能,可处理大量并发连接。
    • 优势:非常适合处理高并发的WebSocket连接,能够处理数千个并发连接。
  4. Fiber

    • 特点:基于fasthttp,性能优越,API简洁,开发体验好。
    • 优势:内置对WebSocket的良好支持,适合实时应用,如即时通讯、在线游戏等。
  5. 其他框架

    • 如Go-WebSocket,轻量级且简单易用,适合快速搭建简单的WebSocket应用。
    • Negroni-Websocket,基于Negroni框架的WebSocket中间件,适合使用Negroni框架的项目。

在选择WebSocket框架时,建议根据项目需求、社区支持和集成性等因素进行综合考虑。如果需要快速搭建简单的WebSocket应用,可以选择轻量级的框架;如果需要更全面的功能和更好的稳定性,可以选择Gorilla/Websocket或Echo等框架。

回到顶部