Chapter 1: What Are Comet and Reverse Ajax? 1 The Tmiihle with HTTP .> , 2 Some Common Use Cases . 5 Monitoring and Data Feeds 5 Progress Updates 6 Chat and Collaboration 8 Siimmaiy ^ Chapter 2: Simple Ways to Achieve Push 11 The Magnetic Poetry Appiicatkm . i I Creating New Words 15 Reading Words 15 Updating Words 17 Deleting Words 18 Ifttroiinemg Push Using Polling 19 Improving Efficiency Using Piggyhaeiiing 25 Sinmmijy .^ Chapter 3: Introducing Comet 33 Implementing a Comet Feed Using XHR 33 Script Tags, Iframes, ami Comei 40 Comet and Reverse Aiax firstPress i Long Polling ã. 41 Issues with Naive Comet Implementations 47 Request Limits in the Browser 48 Server-Side Performance Concerns 50 Network Infrastructure 50 Summary 51 Chapter 4: Comet the Easy Way 53 The Emergence of Comet Tools .ãã. 53 Direct Web Remoting ã 54 DWR in Action 55 DWRServlet 58 DWR and Comet. .- ã ã 62 Magnetic Poetry Meets DWR on the Client Side 62 Magnetic Poetry and DWR on the Server Side 64 Routing Magnetic Poetry Events 66 Wrapping Up This Implementation 68 Summary 69 Chapter 5: Scaling Comet in Java 71 Thread Management for the Web 71 wait/notify 72 Difficulties in Using wait/notify with Comet 76 Jetty 6 . -. 77 Using Jetty Continuations 77 Understanding the Continuation Mechanism 80 Drawbacks of Continuations 82 ii firstPress Comet and Reverse Ajax Jetty Continuations and DWR . ã .- .-.ã . *ã -. 83 Future Comet Support in Java 84 Summary 85 Chapter 6: Introducing Bayeux 87 HTTP Request Management . 88 Naming Channels 90 Message Format .91 Standard Channels 94 Transport Negotiation 95 Client-Side Implementations 98 Server-Side Implementations 102 Using Bayeux with Dojo and Jetty 104 Server-Side Messaging Ill Summary 114 Chapter 7: Combining Comet with CRUD 117 Revisiting Magnetic Poetry 119 Client-Side Initialization Code 120 Server-Side Initialization Code 125 Creating Domain Objects. .128 Comet and Reverse Aiax firstPress iii I Updating Domain Ot)je€is . 130 Deleting Domain ()hjecis .^ Using Comeidfor Progress Repfpris . 133 Additionai Resonrces 136 Further Reading 136 Further Implementations 137 Emerging Standards 137