Giter Site home page Giter Site logo

el-mubarok / codeigniter4-websocket Goto Github PK

View Code? Open in Web Editor NEW

This project forked from takielias/codeigniter4-websocket

0.0 1.0 0.0 40 KB

Codeigniter 4 Websocket Built for real-time application

Home Page: https://ebuz.xyz

License: MIT License

PHP 100.00%

codeigniter4-websocket's Introduction

Latest Version on Packagist Total Downloads Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

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.* recommanded)
  • 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

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.

  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 - @cheapapp_net - https://ebuz.xyz - [email protected]

Acknowledgements

codeigniter4-websocket's People

Contributors

takielias avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.