| Foreword | p. xi |
| Preface | p. xv |
| FlashCom Foundation | |
| Introducing the Flash Communication Server | p. 3 |
| Clients and Servers | p. 4 |
| Creating an Application | p. 6 |
| Real-Time Messaging Protocol | p. 7 |
| The Communication Classes | p. 9 |
| Communicating with Application Servers, Databases, and Directory Servers | p. 15 |
| Firewalls and Security | p. 16 |
| Getting Started | p. 16 |
| Hello Video! | p. 19 |
| Conclusion | p. 30 |
| Communication Components | p. 32 |
| Overview of Communication Components | p. 33 |
| Summary of Communication Components | p. 38 |
| Creating an Application that Monitors a Connection | p. 70 |
| Building a Simple Chat Room | p. 72 |
| Adding Audio and Video to the Chat Room | p. 73 |
| Forgoing the SimpleConnect Component | p. 75 |
| Conclusion | p. 76 |
| Managing Connections | p. 78 |
| Making a Connection | p. 78 |
| Managing a Connection | p. 84 |
| Reusing a NetConnection Object | p. 90 |
| Multiple Simultaneous NetConnection Objects | p. 93 |
| Testing and Debugging Network Connections | p. 93 |
| Subclassing the NetConnection Class | p. 96 |
| Communication Components Without SimpleConnect | p. 104 |
| Conclusion | p. 112 |
| Applications, Instances, and Server-Side ActionScript | p. 113 |
| Scripting Application Instances | p. 113 |
| Differences Between Flash ActionScript and Server-Side ActionScript | p. 118 |
| The Life of an Application Instance | p. 124 |
| Running a Simple Hello World Test Script | p. 126 |
| A More Realistic Example | p. 131 |
| Instance-to-Instance Communications | p. 138 |
| Script Filenames and Locations in Detail | p. 140 |
| Testing and Debugging Server-Side Script Files | p. 143 |
| Designing Communication Applications | p. 145 |
| Conclusion | p. 145 |
| Audio, Video, and Data Streams | |
| Managing Streams | p. 149 |
| A Simple Publisher/Subscriber Example | p. 151 |
| Stream Names | p. 157 |
| Publishing Streams in Detail | p. 158 |
| Playing Streams in Detail | p. 166 |
| The Stream Class | p. 183 |
| Publishing and Playing ActionScript Data | p. 192 |
| Creating Synchronized Presentations | p. 197 |
| The NetStream and Stream Information Objects | p. 200 |
| Stream Enhancements and Limitations | p. 203 |
| Conclusion | p. 204 |
| Microphone and Camera | p. 206 |
| Working with Microphone/Audio Input | p. 206 |
| Working with Camera Input | p. 216 |
| Building a Message-Taking Application | p. 225 |
| Building a Surveillance Application | p. 233 |
| Conclusion | p. 237 |
| Media Preparation and Delivery | p. 238 |
| Audio and Video Compression | p. 238 |
| Converting Prerecorded Material to FLV Format | p. 242 |
| Using Flash Pro's Media Components | p. 260 |
| Enabling Multiple Bit Rate FLVs Within an Application | p. 267 |
| Streaming MP3 Audio | p. 273 |
| Conclusion | p. 276 |
| Remote Connectivity and Communication | |
| Shared Objects | p. 281 |
| Objects and Shared Objects | p. 281 |
| Getting a Shared Object in Flash | p. 282 |
| Updates and Frame Rates | p. 296 |
| Scripting Shared Objects on the Server | p. 298 |
| Temporary and Persistent Shared Objects | p. 303 |
| Proxied Shared Objects | p. 315 |
| Shared Objects and Custom Classes | p. 321 |
| Avoiding Collisions | p. 324 |
| Optimizing Shared Object Performance | p. 325 |
| Broadcasting Remote Method Calls with send() | p. 326 |
| A Simple Video and Text Chat Application | p. 328 |
| Conclusion | p. 335 |
| Remote Methods | p. 336 |
| Why Use Calls? | p. 336 |
| The send() and call() Methods | p. 337 |
| Client-to-Server Calls | p. 337 |
| Server-to-Client Calls | p. 343 |
| Server-to-Server Calls | p. 346 |
| A Simple Lobby/Rooms Application | p. 347 |
| Debugging Calls | p. 363 |
| Advanced Topics | p. 366 |
| Conclusion | p. 380 |
| Server Management API | p. 381 |
| Connecting to the Admin Service | p. 381 |
| Using the Server Management API | p. 386 |
| Server Management API Uses | p. 400 |
| Conclusion | p. 406 |
| Flash Remoting | p. 407 |
| The Remoting Gateway | p. 407 |
| Remoting Basics | p. 409 |
| Role of Remoting in FlashCom Applications | p. 425 |
| Securing Access | p. 430 |
| Conclusion | p. 431 |
| ColdFusion MX and FlashCom | p. 432 |
| Understanding ColdFusion MX and Flash Remoting | p. 432 |
| Using Flash Remoting to Log Events | p. 438 |
| Getting a List of Streams | p. 450 |
| Using ColdFusion and FTP to Mirror Streams | p. 460 |
| Conclusion | p. 468 |
| Design and Deployment | |
| Building Communication Components | p. 471 |
| Source Files | p. 474 |
| People Lists | p. 474 |
| A Simple People List | p. 474 |
| Listenable Shared Objects | p. 485 |
| Status and People List | p. 489 |
| Text Chat | p. 507 |
| Shared Text | p. 519 |
| Video Conference and Video Window | p. 527 |
| PeopleGrid | p. 538 |
| Summary | p. 545 |
| Conclusion | p. 547 |
| Understanding the Macromedia Component Framework | p. 548 |
| The Component Framework | p. 548 |
| Under the Hood of the Chat Component | p. 550 |
| Creating a Simple Component from Scratch: Shared TextInput | p. 562 |
| Creating a Container Component: SharedAddressForm | p. 570 |
| Creating an Authenticating Component | p. 574 |
| Integrating Components with Your Existing Applications | p. 586 |
| Understanding the Framework | p. 593 |
| Conclusion | p. 611 |
| Application Design Patterns and Best Practices | p. 612 |
| Shared Object Management | p. 612 |
| Moving Code to the Server | p. 637 |
| Building Facades on the Server | p. 642 |
| Server-Side Client Queues | p. 643 |
| A Framework for Recording and Playing Back Componentized Applications | p. 646 |
| Components and Component Frameworks | p. 660 |
| Conclusion | p. 671 |
| Building Scalable Applications | p. 672 |
| Coordinating Instances | p. 673 |
| Scalability and Load Balancing | p. 686 |
| Conclusion | p. 695 |
| Network Performance, Latency, and Concurrency | p. 697 |
| Latency | p. 698 |
| Bandwidth | p. 704 |
| Concurrency | p. 720 |
| Conclusion | p. 725 |
| Securing Applications | p. 726 |
| The Three A's: Authentication, Authorization, and Accounting | p. 727 |
| Authentication | p. 728 |
| Authorization | p. 764 |
| Accounting | p. 784 |
| Suggestions and References | p. 790 |
| Conclusion | p. 792 |
| About the Authors | p. 793 |
| Index | p. 795 |
| Table of Contents provided by Ingram. All Rights Reserved. |