XSF Discussion - 2013-01-27


  1. danial-l

    Hi

  2. Jef

    Hello Lance

  3. Lance

    hi Jef

  4. Jef

    i have question, can a muc relay and IQ query to all the occupants in the room?

  5. Lance

    it can, but how it does so, and how it handles the results isn't specified

  6. Jef

    how about instead of the room itself, maybe a service does it

  7. Lance

    ?

  8. Kev

    Or, to put it another way, no it doesn't :)

  9. Jef

    it can't be done?

  10. Kev

    Not with standard MUC.

  11. Lance

    if you implemented your own muc component, and decided how to deal with all of the responses, sure

  12. Jef

    Lance, by component you mean service?

  13. Jef

    which can be discovered by disco

  14. Lance

    right, I mean the service providing the muc rooms

  15. Jef

    hmmm...

  16. Jef

    thanks i will check it out

  17. Lance

    but you would most likely be better off just sending the queries to the room occupants instead

  18. Jef

    if i have one query and 100 occupants it would be troublesome

  19. Jef

    more so, i don't know which occupants can handle the query

  20. Kev

    Well, that, at least, you should know.

  21. Jef

    if they join the attached muc service, i could know that

  22. Jef

    so i just send the query to the service

  23. Kev

    They'll have caps in their presence.

  24. Jef

    oh

  25. Jef

    i haven't considered that

  26. Kev

    It would break the iq model if you started getting multiple responses to a single query.

  27. Jef

    ha.... i see

  28. Jef

    so that's an absolute no

  29. Jef

    still, i find that sending a new IQ for each and every occupant is rather inefficient

  30. Lance

    sounds like you need might need mep

  31. Jef

    mep?

  32. Lance

    http://xmpp.org/extensions/inbox/mep.html

  33. Kev

    PEP for MUCs.

  34. Jef

    looks it it could solve the problem, yes... but it is a proto xep

  35. Jef

    i have no other choice then, but wait until it is ready

  36. Lance

    Jef: how much control do you have in this setup? Are these arbitrary clients joining the muc, or ones that you control?

  37. Lance

    because you could make your muc service do the initial query and then do a message broadcast with the results

  38. Jef

    no, they are arbitrary

  39. Jef

    Lance, it is for the FIS

  40. Lance

    ooh

  41. Lance

    I see

  42. Jef

    i want to send a search query

  43. Lance

    and search across all room occupants

  44. Jef

    yes

  45. Lance

    ok, then MEP wouldn't help in that case

  46. Jef

    :S

  47. Lance

    so, you'd need to do this like how MAM works

  48. Lance

    send the iq to the muc, muc queries occupants, muc forwards results via message wrappers to the requester, muc sends result iq

  49. Jef

    Message Archive Management?

  50. Lance

    yes

  51. Lance

    the pattern of send iq, receive series of result message stanzas, receive single result iq

  52. Kev

    I think I missed what you're trying to do.

  53. Jef

    Kev, it is about searching files

  54. Kev

    Ah.

  55. Jef

    Lance, then the muc would have to wait for every occupant to send the results?

  56. Kev

    It would, yes.

  57. Lance

    to send the final iq, yes

  58. Jef

    not optimal, but i guess that's the best we can do

  59. Jef

    maybe send a timeout with the query

  60. Lance

    hrm

  61. Lance

    we can't really solve the waiting issue without caching/versioning/etc, but we can make this look a bit nicer and not have all of these response stanzas

  62. Lance

    by declaring that a muc room's FIS root directory contains a directory for each occupant

  63. Lance

    and then the room proxies any requests for data in those directories to those occupants

  64. Jef

    and what about with you want to search all across with a single keyword

  65. Jef

    and what about when* you want to search all across with a single keyword

  66. Lance

    it would look exactly like doing it with another user. in this case the muc service knows how to mux all of the search results together into a single result

  67. Lance

    RSM goes out the window though :/

  68. Jef

    result set?

  69. Lance

    right, how do you reliably limit/page results from a search across multiple sources?

  70. Lance

    its doable if the muc caches the directory tree and metadata for its occupants

  71. Jef

    how about every result have an attribute with the jid of the occupant

  72. Jef

    i don't understand well how RSM becomes difficult

  73. Lance

    well, idk. i'd have to think some more. it may work just fine

  74. Lance

    ok, chat based voting works with the new memberbot. It just needs to write output files like the old one

  75. Lance ponders how to integrate last message correction with voting