这是什么?
WebSocket 协议的一个 Go 语言实现——一个快速、经过充分测试且被广泛使用的 Go 包,用于 WebSocket 客户端与服务器之间的通信。
这是一个导入到代码里的库,还是可以单独运行的东西?
它是一个库,不是独立的应用:你需要把 github.com/gorilla/websocket 导入到自己的 Go 程序中,然后在它之上编写客户端或服务器逻辑。它属于 Gorilla web 工具包的一部分。
怎么把它装进一个 Go 项目?
运行 go get github.com/gorilla/websocket,然后在代码中导入这个包就行了。这就是 README 中列出的全部安装步骤。
除了 Go 之外还需要别的什么吗?
只需要 Go 工具链。它是一个自包含的 Go 包,没有任何外部依赖,也不涉及账号或 API 密钥。
它对 WebSocket 协议的支持有多完整?
它提供了完整且经过测试的协议实现,并通过了 Autobahn Test Suite 的服务器端测试;测试应用位于 examples/autobahn 子目录中。
这个 API 稳定吗,能用来做产品吗?
可以——README 明确说明该包的 API 是稳定的,因此基于它编写的代码在版本升级时不会出现不兼容的改动。
它同时覆盖 WebSocket 连接的客户端和服务器两端吗?
都支持。这个包同时提供客户端和服务器实现,README 中的示例还包括一个聊天示例、一个命令示例以及一个客户端与服务器合一的示例。
在哪里能看到能跑的示例代码?
README 中链接了聊天示例、命令示例、客户端与服务器示例、文件监控示例,以及 examples/autobahn 下的 Autobahn 协议测试应用——足够让你在几分钟内复制出一个能用的客户端和服务器。
和 Go 里其他 WebSocket 方案相比,为什么选它?
它号称快速、测试充分、使用广泛,提供完整的 WebSocket 协议实现和稳定的 API,并通过了 Autobahn 兼容性测试——用于生产环境是一个低风险的默认选择。
这个项目还在维护吗?
还在:该仓库未被归档,从 2013 年就存在了,大约有 24.9k 颗星,README 也把它的实现描述为完整、经过测试且 API 稳定。
What are similar projects?
mux, socket.io, ws, chat, centrifugo, nsq, websocketd, tornado
Which topics is it in?
communication, websockets, realtime, protocol, messaging, websocket, real-time, golang, bsd, backend, networking, go