This is a proof-of-concept adapter for Action Cable.
The next branch tracks Rails main and relies on the ActionCable::Server::Socket abstraction introduced by rails/rails#50979. For stable Rails (≤ 8.1), use the main branch, which depends on actioncable-next.
This branch requires unreleased Action Cable changes from Rails main, currently versioned as 8.2.0.alpha. Released Rails 8.1.x does not include ActionCable::Server::Socket; in Rails 8.1, ActionCable::Connection::Base still accepts (server, env, coder: ...) rather than (server, socket).
The gemspec therefore pins actioncable >= 8.2.0.alpha to prevent accidentally resolving against Rails 8.1.x. Once Rails ships a stable release containing rails/rails#50979, this constraint should be changed to that released version.
Please see the project documentation for more details.
- Getting Started - This guide shows you how to add
async-cableto your project to enable real-time communication between clients and servers using Falcon and Action Cable.
Please see the project releases for all releases.
- Filter requests based on path - don't eat all inbound WebSocket connections.
- Don't close the WebSocket if it is already closed.
- Initial implementation.
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature). - Commit your changes (
git commit -am 'Add some feature'). - Push to the branch (
git push origin my-new-feature). - Create new Pull Request.
To run the test suite:
bundle exec susTo make a new release:
bundle exec bake gem:release:patch # or minor or majorIn order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.