WordPress.org

Forums

Quick Chat
Quick Chat stops refreshing (8 posts)

  1. JumpmanFR
    Member
    Posted 3 years ago #

    Hi,

    I have some big problems, when using Quick Chat.

    After about 30 seconds using it, Quick Chat stops refreshing and I don't see any new message unless I refresh the whole page (F5).

    I opened Chrome dev tools and I found that every time this happens, there is an error message:

    blockquotePOST http://sessionsenfolie.free.fr/wp-admin/admin-ajax.php
    f.support.ajax.f.ajaxTransport.sendjquery.js:4
    f.extend.ajaxjquery.js:4
    f.each.f.(anonymous function)jquery.js:4
    jQuery.quick_chat_update_messagesquick-chat-core.js:304
    (anonymous function)quick-chat-core.js:407
    f.Callbacks.njquery.js:2
    f.Callbacks.o.fireWithjquery.js:2
    wjquery.js:4
    f.support.ajax.f.ajaxTransport.send.djquery.js:4/blockquote

    It seems that when the server fails responding on a request, that totally freezes the regular refreshing process. That's the only explanation I could have, though I don't see why the server would fail on executing a request.

    Here is my website so you can try yourself: http://sessionsenfolie.free.fr/index.php/tribune/

    Any idea?

    Thanks in advance!

    http://wordpress.org/extend/plugins/quick-chat/

  2. Marko-M
    Member
    Plugin Author

    Posted 3 years ago #

    Hi your theme author is doing bad programming practice by loading old jQuery 1.3.2 from http://sessionsenfolie.free.fr/wp-content/themes/redbel2/js/jquery.min.js This affects Quick Chat and all jQuery plugins on your site, basically they are all stuck with jQuery 1.3.2. Quick Chat requires minimum jQuery 1.4.4 and that's why your chat isn't working. It will stay that way until you fix your theme to load jQuery proper way or change your theme. It isn't something big to fix but you must know a bit of WP development and PHP in general, until you fix it it'll bite you in the you know where sooner or later. Wish you good luck!

    Regards,
    Marko

  3. JumpmanFR
    Member
    Posted 3 years ago #

    Hi,

    Thank you for your answer.

    But when I tried to use the default theme, the problem was still present, so why?

    Also, I'm not too much into WP development, so what is the proper way to load jquery from the theme?

    Regards,
    JumpmanFR

  4. Marko-M
    Member
    Plugin Author

    Posted 3 years ago #

    No problem,
    as for not working with default theme there could be other problems besides this one that makes Quick Chat fail to work. You should take another look into your browser console, and/or monitor ajax calls with Firebug or Chrome Dev Tools to see what is happening when they return from server. Take a look here for jQuery here: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

  5. Marko-M
    Member
    Plugin Author

    Posted 3 years ago #

    No problem,
    as for not working with default theme there could be other problems besides this one that makes Quick Chat fail to work. You should take another look into your browser console, and/or monitor ajax calls with Firebug or Chrome Dev Tools to see what is happening when they return from server. Take a look here for jQuery here: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

  6. JumpmanFR
    Member
    Posted 3 years ago #

    I use Chrome Dev Tools, I gave you the callstack:

    POST http://sessionsenfolie.free.fr/wp-admin/admin-ajax.php
    f.support.ajax.f.ajaxTransport.sendjquery.js:4
    f.extend.ajaxjquery.js:4
    f.each.f.(anonymous function)jquery.js:4
    jQuery.quick_chat_update_messagesquick-chat-core.js:304
    (anonymous function)quick-chat-core.js:407
    f.Callbacks.njquery.js:2
    f.Callbacks.o.fireWithjquery.js:2
    wjquery.js:4
    f.support.ajax.f.ajaxTransport.send.djquery.js:4

    Please let me know what else you need to check.

    Also, because of my web host configuration, the PHP version is only 5.1.3 instead of 5.2.4. I made some modifications on WordPress to make it work.
    Could this be the source of my problem?

  7. JumpmanFR
    Member
    Posted 3 years ago #

    What I figured out is that the client doesn't want to wait too long for the server to answer, during and XMLHTTPRequest.
    In your function quick_chat_update_messages_ajax_handler, there is a sleep, with a while, that makes the client wait up to 20 seconds, and in my case, that completely stops refreshing.
    I changed the behaviour: I asked the client to ask for new messages every 5 seconds (or so), and the server answers directly, regardless of the existence of new messages.
    It's a quick and dirty fix, it could increase dramatically the amount of transferred data, but at least, the chat works for me now.

    But maybe it gives you an idea of what's going on, and how you could find a better way to fix the problem. Tell me what you think of that!

  8. Marko-M
    Member
    Plugin Author

    Posted 3 years ago #

    Hm, this is the thing. Quick Chat uses long polling to deliver messages. Basically it sends ajax request and it runs in a loop on server and polls database server until new message appears or 20 second has passed. Then new ajax call is issued from client and new loop starts etc...

    http://en.wikipedia.org/wiki/Comet_(programming)#Ajax_with_long_polling

    That sleep is there so that your server could do something else in the meantime. 20 seconds is there because most servers have timeout for executing PHP scripts and it is is usually around 30 seconds.

    http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time

    That's why I've placed 20 seconds timeout here. Also keep in mind that sleep time doesn't count into this so 20 seconds should be more than enough to avoid ajax handler being interrupted. You should check your server max-execution-time directive, that might give some more clue.

    Now if something breaks during ajax callback loop that would also break the loop and cause chat not working but normally ajax call wouldn't return with PHP error data cause on production server error display is off as well as WP_DEBUG in your wp-config.php.

    http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

    http://nacin.com/tag/wp_debug/

    If you could turn these directives temporarily on you could actually see php error returned as ajax call data on Net tab of Firebug or Network tab of chrome devel tools. Then you would be absolutely sure what happens when ajax call doesn't return at all (it does actually but you can't see its output so it breaks silently).

Topic Closed

This topic has been closed to new replies.

About this Plugin

  • Quick Chat
  • Frequently Asked Questions
  • Support Threads
  • Reviews

About this Topic

Tags