image

Realtime Posts for Free Forever

This Simple extension enables realtime posts without any third party service or without any heavy server load except very low-end servers.

Demo

Install

composer require ramesh-dada/realtime

Usage

Just enable the extension in admin panel and you are done, Enjoy real-time posts without pusher or any third party service.

Update

composer update ramesh-dada/realtime

Uninstall

composer remove ramesh-dada/realtime

FAQ

What does Jugaad mean?

Which refers to a non-conventional, frugal innovation, often termed a "hack".
According to the dictionary, noun Jugaad means a flexible approach to solve a problem, that uses limited resources in an innovative way.

I dont know how it is for others, but all this pushers, websockets, real time thing, is a complete mambo-jambo area. Im outdated person.

The pusher and all this Realtime things allows us to see newer posts without refreshing the browser window.

Do we need to disable Pusher then?

Yes, as it may conflict.

What difference does it make?

  • It's free for your whole life, and doesn't even use any third party services.
  • It works out of the box doesn't even require any configuration.
  • It doesn't even require user interaction, I mean in pusher in order to see new posts the user will have to do like or do scroll up and down then only it will work properly but It's not the case with this one.
    • You can check it yourself open in 2 tabs and set the interval time maybe 5 or 6 seconds and post from 1st tab you will see that the post appears in 2nd tab.

Why should we use it?

As it's free and self hosted and use it only if you are having less than 10,000 users and a better processor for getting posts in Realtime as its mainly for small to medium communities, If you can configure and afford websockets extension then you can use it as it's far more better.

And if it breaks will forum still work.

  • Yes It will not break, It will just make your CPU shutdown, and you can easily turn it on.
  • If you add the update interval time more than 10 seconds than chances are very less.
  • It will only break if your server is very low-end server.

Links

    Well done Ramesh!

    1Dot without any server load

    This is incorrect. Polling causes far more load on the server than websockets. Depending on the interval you can compare it with refreshing the page every single time, except that it doesn't load html, css and JavaScript. All data still is being gathered from the API when polling.

      luceos This is incorrect. Polling causes far more load on the server than websockets. Depending on the interval you can compare it with refreshing the page every single time, except that it doesn't load html, css and JavaScript. All data still is being gathered from the API when polling.

      OK I am sorry, I messed up! 😅 I edited it to without any heavy load!

      User24 This simply execute a function when user do some activity like scrolling hovering mouse here and there and if you like someone's post then it execute the same function as pusher does!! and show you the new posts!!

        1Dot if you like someone's post then it execute the same function as pusher does!! and show you the new posts!!

        So for this to work, they should like any post within the thread? Can't it be done without any interaction?

          User24 Yes it can't be done without any interaction as If i will execute it every second then it will add heavy load on your server and I made it to also run on low end servers and also pusher does the same it also requires interaction and You can also scroll up and down if you don't want to like or you can simply open composer and close that!!

          Note : Pusher also requires interaction !!

            rafaucau Yes and its same in this Jugaad Posts Realtime Polling extension that this problem does not occurs always!

              1Dot https://mithril.js.org/autoredraw.html
              It re-renders.

              But don't use it in the view method because your code will fall into an infinite loop.


              1Dot Yes and its same in this Jugaad Posts Realtime Polling extension

              I have checked your extension code and I know why the problem occurs for you. Because you have written the extension in such a way that when the redraw happens, it only fetches the posts

              Update v99.4


              • Fixed Minor Issues.
              • Now It doesn't even requires interaction works like a pro, I mean ultra pro.

              Update

              composer update ramesh-dada/realtime
              php flarum cache:clear

              Thanks to @rafaucau

              To Do

              Add discussion list support auto update discussion list!!

              I updated in my production forum as per @rafaucau suggested with m.redraw and the server load gone to 97% Cpu usage every second Is it expected behaviour???

                1Dot I said if you use it wrong it will fall into an infinite loop 😃

                • 1Dot replied to this.