Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/takielias/codeigniter4-websocket
Codeigniter 4 Websocket Built for real-time application
https://github.com/takielias/codeigniter4-websocket
codeigniter4 real-time websocket
Last synced: about 9 hours ago
JSON representation
Codeigniter 4 Websocket Built for real-time application
- Host: GitHub
- URL: https://github.com/takielias/codeigniter4-websocket
- Owner: takielias
- License: mit
- Created: 2019-12-20T18:09:46.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-03T15:41:11.000Z (about 1 year ago)
- Last Synced: 2025-01-23T04:09:57.288Z (9 days ago)
- Topics: codeigniter4, real-time, websocket
- Language: PHP
- Homepage: https://ebuz.xyz
- Size: 55.7 KB
- Stars: 85
- Watchers: 10
- Forks: 27
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Total Downloads][ico-downloads]][link-downloads]
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
CodeIgniter 4 WebSocket Library
CodeIgniter WebSocket library. It allows you to make powerfull realtime applications by using Ratchet [Socketo.me](http://socketo.me) Websocket technology.
#### WebSocket Library for Codeigniter 3.x https://github.com/takielias/codeigniter-websocket
## Table of Contents
* [Getting Started](#getting-started)
* [Prerequisites](#prerequisites)
* [Installation](#installation)
* [Publishing](#publishing)
* [Usage](#usage)
* [Authentication and callbacks](#authentication-and-callbacks)
* [Roadmap](#roadmap)
* [Contributing](#contributing)
* [License](#license)
* [Contact](#contact)
* [Acknowledgements](#acknowledgements)## 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
```sh
composer require takielias/codeigniter4-websocket @dev
```
### Publishing Resource
You need to publish the resources for the default configuration
```sh
php spark websocket:publish
```## Usage
First start CodeIgniter
```sh
php spark serve
```If you run the server in a different port, follow the command below.
```sh
PHP spark serve --port=9092
```**Finally start Websocket Server**
```sh
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````php
$routes->setAutoRoute(true);
```**WOW You made it !!!** :heavy_check_mark:
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
```sh
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](https://github.com/takielias/codeigniter4-websocket/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**.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Taki Elias - [@takiele](https://twitter.com/takiele) - [https://ebuz.xyz](https://ebuz.xyz) - [email protected]
## Acknowledgements
* [http://socketo.me](https://github.com/ratchetphp/Ratchet)
* [Websocket Client for PHP](https://github.com/Textalk/websocket-php)
* [Choose an Open Source License](https://choosealicense.com)
* [GitHub Pages](https://pages.github.com)
* [Animate.css](https://daneden.github.io/animate.css)
* [Loaders.css](https://connoratherton.com/loaders)
* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
* [Font Awesome](https://fontawesome.com)## Support on Buy Me A Coffee
Hey dude! Help me out for a cup of ☕!
[contributors-shield]: https://img.shields.io/github/contributors/takielias/codeigniter4-websocket.svg?style=flat-square
[contributors-url]: https://github.com/takielias/codeigniter4-websocket/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/takielias/codeigniter4-websocket.svg?style=flat-square
[forks-url]: https://github.com/takielias/codeigniter4-websocket/network/members
[stars-shield]: https://img.shields.io/github/stars/takielias/codeigniter4-websocket.svg?style=flat-square
[stars-url]: https://github.com/takielias/codeigniter4-websocket/stargazers
[issues-shield]: https://img.shields.io/github/issues/takielias/codeigniter4-websocket.svg?style=flat-square
[issues-url]: https://github.com/takielias/codeigniter4-websocket/issues
[license-shield]: https://img.shields.io/github/license/takielias/codeigniter4-websocket.svg?style=flat-square
[license-url]: https://github.com/takielias/codeigniter4-websocket/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/takielias
[product-screenshot]: images/screenshot.png[ico-version]: https://img.shields.io/packagist/v/takielias/codeigniter4-websocket.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/takielias/codeigniter4-websocket.svg?style=flat-square[link-packagist]: https://packagist.org/packages/takielias/codeigniter4-websocket
[link-downloads]: https://packagist.org/packages/takielias/codeigniter4-websocket
[link-author]: https://github.com/takielias