All Projects → centrifugal → Centrifuge Go

centrifugal / Centrifuge Go

Licence: mit
Go WebSocket client for Centrifugo and Centrifuge library

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Centrifuge Go

Him Netty
开源的H5即时聊天系统 spring-boot + netty + protobuf + vue ~
Stars: ✭ 194 (+104.21%)
Mutual labels:  protobuf, websocket
Him Vue
开源的H5即时聊天系统 spring-boot + netty + protobuf + vue ~
Stars: ✭ 142 (+49.47%)
Mutual labels:  protobuf, websocket
Centrifuge
Real-time messaging library for Go with scalability in mind
Stars: ✭ 446 (+369.47%)
Mutual labels:  protobuf, websocket
Istio Micro
istio 微服务示例代码 grpc+protobuf+echo+websocket+mysql+redis+kafka+docker-compose
Stars: ✭ 194 (+104.21%)
Mutual labels:  protobuf, websocket
Go Space Chat
【孤单Lonely】基于Golang/WebSocket/Canvas/Protobuf 的聊天室
Stars: ✭ 228 (+140%)
Mutual labels:  protobuf, websocket
Shineframe
高性能超轻量级C++开发库及服务器编程框架
Stars: ✭ 274 (+188.42%)
Mutual labels:  protobuf, websocket
Getty
a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd
Stars: ✭ 532 (+460%)
Mutual labels:  protobuf, websocket
Bufferutil
WebSocket buffer utils
Stars: ✭ 83 (-12.63%)
Mutual labels:  websocket
Arduinowebsockets
arduinoWebSockets
Stars: ✭ 1,265 (+1231.58%)
Mutual labels:  websocket
Laverna
Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote.
Stars: ✭ 8,770 (+9131.58%)
Mutual labels:  websocket
Angular Websocket
↖️ The missing Angular WebSocket module for connecting client applications to servers by @AngularClass
Stars: ✭ 1,242 (+1207.37%)
Mutual labels:  websocket
Pywebsocketserver
python的websocket server
Stars: ✭ 84 (-11.58%)
Mutual labels:  websocket
Chat Engine
Object oriented event emitter based framework for building chat applications in Javascript.
Stars: ✭ 87 (-8.42%)
Mutual labels:  websocket
Wstest
go websocket client for unit testing of a websocket handler
Stars: ✭ 83 (-12.63%)
Mutual labels:  websocket
Chat App
一个基于django、nodejs、vue的websocket实时点对点通讯项目,关键词 QQ、微信、实时聊天、django、vue、nodejs、websocket。
Stars: ✭ 94 (-1.05%)
Mutual labels:  websocket
Sparksql Protobuf
Read SparkSQL parquet file as RDD[Protobuf]
Stars: ✭ 82 (-13.68%)
Mutual labels:  protobuf
Blockchain Java
这是java版的简化示例区块链demo;另外还有kotlin版的;这个小demo能让你了解区块链中增加/效验Hash,增加工作量证明,增加/效验preHash,转账,利用webSocket技术实现节点之间的通信/同步/广播.
Stars: ✭ 95 (+0%)
Mutual labels:  websocket
Workerman
An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols. PHP>=5.3.
Stars: ✭ 9,617 (+10023.16%)
Mutual labels:  websocket
Sketchpad
Sketchpad is fully customisable collaborative whiteboard plugin written in pure JavaScript.
Stars: ✭ 85 (-10.53%)
Mutual labels:  websocket
Grpcweb Example
An example implementation of a GopherJS client and a Go server using the Improbable gRPC-Web implementation
Stars: ✭ 85 (-10.53%)
Mutual labels:  protobuf

GoDoc

Websocket client for Centrifuge library and Centrifugo server.

There is no v1 release of this library yet – API still evolves. At the moment patch version updates only contain backwards compatible changes, minor version updates can have backwards incompatible API changes.

Feature matrix

  • [x] connect to server using JSON protocol format
  • [x] connect to server using Protobuf protocol format
  • [x] connect with token (JWT)
  • [x] connect with custom header
  • [x] automatic reconnect in case of errors, network problems etc
  • [x] an exponential backoff for reconnect
  • [x] connect and disconnect events
  • [x] handle disconnect reason
  • [x] subscribe on a channel and handle asynchronous Publications
  • [x] handle Join and Leave messages
  • [x] handle Unsubscribe notifications
  • [x] reconnect on subscribe timeout
  • [x] publish method of Subscription
  • [x] unsubscribe method of Subscription
  • [x] presence method of Subscription
  • [x] presence stats method of Subscription
  • [x] history method of Subscription
  • [x] top-level publish method
  • [x] top-level presence method
  • [x] top-level presence stats method
  • [x] top-level history method
  • [ ] top-level unsubscribe method
  • [x] send asynchronous messages to server
  • [x] handle asynchronous messages from server
  • [x] send RPC commands
  • [x] publish to channel without being subscribed
  • [x] subscribe to private channels with token (JWT)
  • [x] connection token (JWT) refresh
  • [ ] private channel subscription token (JWT) refresh
  • [x] handle connection expired error
  • [ ] handle subscription expired error
  • [x] ping/pong to find broken connection
  • [x] message recovery mechanism for client-side subscriptions
  • [x] server-side subscriptions
  • [x] message recovery mechanism for server-side subscriptions
  • [ ] history stream pagination

Run tests

First run Centrifugo instance:

docker run -d -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client_insecure

Then run go test

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].