Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you want to allow realtime collaboration then <a href="https://stackoverflow.com/questions/8820532/is-real-time-collaboration-possible-using-a-text-area/8835877">this question</a> that also mentions Operational Transforms will be of interest to you. And there's also <a href="https://stackoverflow.com/questions/2043165/operational-transformation-library">a question about operational transformation libraries</a>.</p> <blockquote> <p>What would be the program flow and the server infrastructure for a thing like this?</p> </blockquote> <p>I work for <a href="http://pusher.com" rel="nofollow noreferrer">Pusher</a> so I can tell you one solution using our technology.</p> <ol> <li>User A opens page where there could be a 'collision'. Within the page subscribe to a <a href="http://pusher.com/docs/channels" rel="nofollow noreferrer">channel</a> for the page.</li> <li>User A starts editing the page. Send an AJAX request to the server so there is some persisted state about the fact the page is being edited. Trigger an event on the channel stating that the user is editing the page.</li> <li>User B opens the page. The page loads and can display the information from the persisted state that the page is being edited.</li> <li>User A finishes editing and a request is made to the server to update the page state. Trigger an event indicating that nobody is editing the page. This event will be distributed to User B (the updated page can also be distributed via within the event or via an AJAX request when the event is received).</li> <li>User B now knows he/she can edit the page. They begin editing (see step 2.) and User A is notified that User B is now editing the page.</li> </ol> <p>It would also be quite cool to use <a href="http://pusher.com/docs/presence" rel="nofollow noreferrer">presence</a> so you could see who else was viewing the page and to allow the users to discuss changes as they happen.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload