/anycable-go

Anycable Go WebSocket Server

Primary LanguageGoMIT LicenseMIT

TravisCI CircleCI Docker Dependency Status Gitter Documentation

AnyCable-Go WebSocket Server

WebSocket server for AnyCable.

NOTE: this is a readme for the 0.6.x version. Go to 0.5.x version.

Installation

The easiest way to install AnyCable-Go is to download a pre-compiled binary.

MacOS users could install it with Homebrew

brew install anycable-go

Arch Linux users can install anycable-go package from AUR.

Of course, you can install it from source too:

go get -u -f github.com/anycable/anycable-go/cmd/anycable-go

NOTE: right now it's not possible to build anycable-go with mruby support using the command above. To install anycable-go with mruby from source try:

go get -d -u -f github.com/anycable/anycable-go/cmd/anycable-go && (cd $GOPATH/src/github.com/anycable/anycable-go && make prepare-mruby install-with-mruby)

Upgrade

For instructions on how to upgrade to a newer version see upgrade notes.

Heroku

See heroku-anycable-go buildpack.

Usage

Run server:

$ anycable-go

=> INFO 2018-03-05T08:44:57.684Z context=main Starting AnyCable 0.6.0

You can also provide configuration parameters through the corresponding environment variables (i.e. ANYCABLE_RPC_HOST, ANYCABLE_REDIS_URL, etc).

For more information about available options run anycable-go -h.

📑 Documentation

Build

make

Docker

See available images here.

ActionCable Compatibility

Feature Status
Connection Identifiers +
Connection Request (cookies, params) +
Disconnect Handling +
Subscribe to channels +
Parameterized subscriptions +
Unsubscribe from channels +
Performing Channel Actions +
Streaming +
Usage of the same stream name for different channels +
Broadcasting +
Remote disconnect - (WIP)
Custom stream callbacks -
Subscription Instance Variables -

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/anycable/anycable-go.

Please, provide reproduction script (using this template) when submitting bugs if possible.

License

The library is available as open source under the terms of the MIT License.