Skip to content

IMAP IDLE #1813

Closed
Closed

Description

@rcubetrac

Reported by ex sqm on 23 Sep 2008 11:19 UTC as Trac ticket #1485402

It were really great if you could implement Rfc 2177 into Roundcube.

Unfortunately, there seems to be no function in recent PHP that offers this - a challenge for you :-)

Migrated-From: http://trac.roundcube.net/ticket/1485402

Activity

  1. rcubetrac commented on Oct 1, 2008

    @rcubetrac
    Author

    Comment by tensor on 1 Oct 2008 00:08 UTC

    I believe it is not impossible. RC connects to IMAP server on every request to the HTTP server. When the response is served, IMAP connection is gone. If you need to reduce stress on the IMAP server, use tools like imap proxy or nginx.

  2. rcubetrac commented on Oct 1, 2008

    @rcubetrac
    Author

    Severity changed by tensor on 1 Oct 2008 00:08 UTC

    normal => minor

  3. rcubetrac commented on Oct 1, 2008

    @rcubetrac
    Author

    Comment by ex sqm on 1 Oct 2008 07:08 UTC

    The big advantage of IMAP IDLE is that if a change to the mailbox is made (new mail, changes of flags by another client), the client is notified almost instantly. It acts like push mail.

    Reducing stress on the IMAP server is a nice side effect. BTW, I already use up-imapproxy.

  4. rcubetrac commented on Oct 23, 2009

    @rcubetrac
    Author

    Comment by joku on 23 Oct 2009 19:32 UTC

    Uh.

    HTTP in general works in the way that IMAP IDLE is impossible to implement if server do not have some dedicated stateful/persistent service (persistent IMAP/database connections can easily be done with for example jsp (tomcat etc.)).

    Currently (and not in foreseeable future) PHP just do not offer any methodology to have persistent connections (let that be IMAP, database etc.) for HTTP services. Command line PHP is different thing.

    I think this ticket is invalid for roundcube, however already suggested nginx/imap proxy solves at least part of problem.

  5. rcubetrac commented on Oct 23, 2009

    @rcubetrac
    Author

    Comment by ex sqm on 23 Oct 2009 19:56 UTC

    Joku,

    I understand your point and agree. Even if we could have IMAP IDLE between RC and the IMAP server, the user would not benefit, since HTTP itself is stateless.

    Some admin should close this ticket with "invalid"

  6. rcubetrac commented on Nov 9, 2009

    @rcubetrac
    Author

    Comment by egallego on 9 Nov 2009 22:59 UTC

    Replying to ex_sqm:

    I understand your point and agree. Even if we could have IMAP IDLE between RC and the IMAP server, the user would not benefit, since HTTP itself is stateless.

    Some admin should close this ticket with "invalid"

    I wouldn't say so. It is clearly a difficult task, but using AJAX and a client timeout it certainly would be doable. Likely a feature for roundcube 2.0 or so.

  7. rcubetrac commented on Mar 17, 2013

    @rcubetrac
    Author

    Comment by @alecpl on 17 Mar 2013 10:39 UTC

    AJAX will not solve lack of persistent connection. I think there's no chance we'll ever implement this.

  8. rcubetrac commented on Mar 17, 2013

    @rcubetrac
    Author

    Status changed by @alecpl on 17 Mar 2013 10:39 UTC

    new => closed

  9. rcubetrac commented on Sep 7, 2014

    @rcubetrac
    Author

    Comment by dhaowoods on 7 Sep 2014 12:48 UTC

    Replying to egallego:

    Replying to ex_sqm:

    I understand your point and agree. Even if we could have IMAP IDLE between RC and the IMAP server, the user would not benefit, since HTTP itself is stateless.

    Some admin should close this ticket with "invalid"

    I wouldn't say so. It is clearly a difficult task, but using AJAX and a client timeout it certainly would be doable. Likely a feature for roundcube 2.0 or so.

    Hi now there is WebSocket which have less overhead (only 2 byte) compared to AJAX setInterval/setTimeout or longpolling approach

  10. rcubetrac commented on Dec 10, 2015

    @rcubetrac
    Author

    Comment by lkraav on 10 Dec 2015 02:14 UTC

    CC-ing. Yes, !WebSocket protocol can definitely be the answer here.

  11. added this to the later milestone on Mar 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions