takielias / codeigniter4-websocket
Websocket using Ratchet Websocket technology for CodeIgniter 4
Installs: 1 959
Dependents: 0
Suggesters: 0
Security: 0
Stars: 85
Watchers: 10
Forks: 27
Open Issues: 10
Requires
- php: ^7.2|^8.0
- cboden/ratchet: ^0.4.4
- textalk/websocket: ^1.6.3
Requires (Dev)
- codeigniter4/framework: dev-master
This package is auto-updated.
Last update: 2024-12-03 17:32:55 UTC
README
CodeIgniter 4 WebSocket Library
CodeIgniter WebSocket library. It allows you to make powerfull realtime applications by using Ratchet Socketo.me Websocket technology.
WebSocket Library for Codeigniter 3.x https://github.com/takielias/codeigniter-websocket
Table of Contents
Getting Started
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
Prerequisites
- PHP 7.2+
- CodeIgniter Framework (4.* recommended)
- Composer
- PHP sockets extension enabled
Installation
composer require takielias/codeigniter4-websocket @dev
Publishing Resource
You need to publish the resources for the default configuration
php spark websocket:publish
Usage
First start CodeIgniter
php spark serve
If you run the server in a different port, follow the command below.
PHP spark serve --port=9092
Finally start Websocket Server
php public/index.php Websocket start
N.B : Don't forget to add the following line in app/Config/Routes.php app/Config/Routes.php
$routes->setAutoRoute(true);
WOW You made it !!! ✔️
Open two pages of your project on the following URL with different IDs :
For default Port
http://localhost:8080/Websocket/user/1
http://localhost:8080/Websocket/user/2
For custom Port
http://localhost:9092/Websocket/user/1
http://localhost:9092/Websocket/user/2
Authentication and callbacks
There are few predefined callbacks, here's the list :
auth, event, close, citimer, roomjoin, roomleave, roomchat
Please check Websocket.php controller To get the Defining example of various Callback Function
public function start() { $ws = service('CodeigniterWebsocket'); $ws->set_callback('auth', array($this, '_auth')); $ws->set_callback('event', array($this, '_event')); $ws->run(); } public function _auth($datas = null) { // Here you can verify everything you want to perform user login. return (!empty($datas->user_id)) ? $datas->user_id : false; } public function _event($datas = null) { // Here you can do everything you want, each time message is received echo 'Hey ! I\'m an EVENT callback' . PHP_EOL; }
Two Callback functions have been defined in the above example. First One is auth & the Second one is event.
🔨🔨🔨 If you need to customize Callback function, Please check the CodeigniterWebsocker.php config file in Your config directory.
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what makes the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Taki Elias - @takiele - https://ebuz.xyz - taki.elias@gmail.com
Acknowledgements
- http://socketo.me
- Websocket Client for PHP
- Choose an Open Source License
- GitHub Pages
- Animate.css
- Loaders.css
- Smooth Scroll
- Font Awesome
Support on Buy Me A Coffee
Hey dude! Help me out for a cup of ☕!