---
title: Real-time messaging with WebSockets
description: Broadcast real-time messages via WebSockets.
image: https://developers.cloudflare.com/cf-twitter-card.png
---

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/learning-paths/llms.txt  
> Use this file to discover all available pages before exploring further.

[Skip to content](#%5Ftop) 

# Real-time messaging with WebSockets

* [ Watch this episode ](#tab-panel-6742)
* [ Series overview ](#tab-panel-6743)

Now, we'll take it a step further by enabling our server to receive and broadcast messages. In this video, you'll learn how to route and broadcast incoming messages from WebSocket connections and implement error handling such as closed WebSocket connections. By the end, you will have completed the backend for our video call app.

**Related content**

For additional resources on learning Durable Objects with Cloudflare, refer to the following resources:

* [Veet Github repository code ↗](https://github.com/megaconfidence/veet)
* [Cloudflare Durable Objects documentation](https://developers.cloudflare.com/durable-objects/)
* [Cloudflare TURN service documentation](https://developers.cloudflare.com/realtime/turn/)
* [CLI command for creating new Workers and Pages projects](https://developers.cloudflare.com/pages/get-started/c3/)
* [Hopscotch.io for local WebSocket testing ↗](https://hoppscotch.io/)
* [Sign up for a Cloudflare account ↗](https://dash.cloudflare.com/sign-up)

[ Watch Episode 1: Introduction to the series ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/introduction-to-series-1/) We present an overview of the series, discuss its underlying architecture, and access resources to set up the project locally. 

[ Watch Episode 2: What are Durable Objects? ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/what-are-durable-objects-2/) We show how Durable Objects work and start building a video call app together. 

[ Watch Episode 3: Create a serverless websocket 'backend' ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/serverless-websocket-backend-3/) We create a WebSocket backend using serverless technology, making the process simpler than ever before. 

[ Watch Episode 4: Real-time messaging with WebSockets ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/real-time-messaging-with-websockets-4/) We learn how to route and broadcast incoming messages from WebSocket connections and implement error handling such as closed WebSocket connections. 

[ Watch Episode 5: Build the app frontend and UI ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/build-the-app-frontend-5/) We configure the frontend starter code, connect to Durable Objects using a call room ID, and display a local video preview. 

[ Watch Episode 6: Make and answer WebRTC calls ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/make-answer-webrtc-calls-6/) We expand the frontend functionality by adding functionality for making and answering WebRTC video calls. 

[ Watch Episode 7: Deploy your video call app ](https://developers.cloudflare.com/learning-paths/durable-objects-course/series/deploy-your-video-call-app-7/) In this final episode, we configure the remaining functionalities. By the end, your app will be fully functional and ready for deployment. 

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/directory/","name":"Directory"}},{"@type":"ListItem","position":2,"item":{"@id":"/learning-paths/","name":"Learning Paths"}},{"@type":"ListItem","position":3,"item":{"@id":"/learning-paths/durable-objects-course/series/","name":"Overview"}},{"@type":"ListItem","position":4,"item":{"@id":"/learning-paths/durable-objects-course/series/real-time-messaging-with-websockets-4/","name":"Real-time messaging with WebSockets"}}]}
```
