MCPInstall

websocket-development

Best practices and guidelines for building real-time applications with WebSocket communication

Installs
829
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/mindrally/skills --skill websocket-development
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads websocket-development automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

WebSocket Development

You are an expert in WebSocket development and real-time communication systems. Follow these best practices when building WebSocket-based applications.

Core Principles

  • Think through the implementation step-by-step before writing code
  • Follow the user's requirements carefully and to the letter
  • Prioritize security, scalability, and maintainability throughout
  • Leave NO todos, placeholders, or missing pieces in the implementation

Connection Management

Establishing Connections

  • Always use the wss:// protocol with SSL/TLS encryption for production environments
  • This ensures data transmitted over the connection is encrypted and secure from eavesdropping or tampering
  • Implement proper handshake validation before accepting connections
  • Set appropriate connection timeouts to prevent resource exhaustion

Connection Lifecycle

  • Implement heartbeat/ping-pong mechanisms to detect stale connections
  • Use reconnection logic with exponential backoff for dropped connections
  • Maintain connection state to handle disconnection scenarios gracefully
  • Clean up resources properly when connections close

Message Handling

Message Design

  • Use structured message formats (JSON with type/payload pattern)
  • Include message IDs for request-response correlation
  • Implement message versioning for backward compatibility
  • Keep message payloads small to reduce latency

Error Handling

  • Always include error handling logic for WebSocket connections
  • Manage potential disconnections or message failures gracefully
  • Implement dead letter handling for unprocessable messages
  • Log errors with sufficient context for debugging

Scalability Patterns

Horizontal Scaling

  • Use a message broker (Redis Pub/Sub, RabbitMQ) for cross-server communication
  • Implement sticky sessions or connection affinity when needed
  • Design stateless handlers where possible
  • Consider using a dedicated WebSocket gateway service

Performance Optimization

  • Buffer messages during brief disconnections
  • Implement message batching for high-frequency updates
  • Use binary protocols (MessagePack, Protocol Buffers) for bandwidth-sensitive applications
  • Monitor connection counts and message throughput

Security Best Practices

Authentication

  • Authenticate connections during the handshake phase
  • Use token-based authentication (JWT) with proper expiration
  • Validate tokens on both connection and periodic intervals
  • Implement rate limiting per connection and per user

Authorization

  • Validate permissions for each message type/channel
  • Implement channel-based access control for pub/sub patterns
  • Never trust client-provided data without validation
  • Sanitize all incoming message payloads

Framework-Specific Guidelines

Node.js Native WebSocket (v21+)

  • Utilize Node.js's built-in WebSocket client for real-time communication to reduce dependencies
  • The built-in client simplifies real-time communication and ensures better interoperability
  • For servers, use established libraries like ws or framework-specific solutions

Bun Runtime

  • Prefer Bun's native capabilities over third-party alternatives
  • Use Bun.serve() with WebSocket support instead of separate WebSocket libraries
  • Leverage Bun's built-in stream handling and fetch implementation

Browser Clients

  • Implement graceful degradation for older browsers
  • Use the standard WebSocket API for broad compatibility
  • Handle visibility changes to manage connection state
  • Implement offline detection and queuing

Testing Strategies

Unit Testing

  • Mock WebSocket connections for isolated testing
  • Test message serialization/deserialization independently
  • Verify error handling paths

Integration Testing

  • Test full connection lifecycle scenarios
  • Verify reconnection behavior under various failure modes
  • Load test with realistic connection counts and message rates

Monitoring and Observability

  • Track connection count metrics
  • Monitor message latency and throughput
  • Alert on connection error rates
  • Log connection lifecycle events for debugging

Common Patterns

Pub/Sub Pattern

  • Implement channel subscription management
  • Use efficient data structures for subscriber lookup
  • Handle subscription cleanup on disconnect

Request/Response Pattern

  • Correlate requests and responses with unique IDs
  • Implement timeout handling for pending requests
  • Consider using acknowledgment messages for reliability

Broadcast Pattern

  • Optimize for one-to-many message delivery
  • Consider message deduplication strategies
  • Implement backpressure for slow consumers

FAQ

What does the websocket-development skill do?

Best practices and guidelines for building real-time applications with WebSocket communication

How do I install websocket-development?

Run npx skills add https://github.com/mindrally/skills --skill websocket-development in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/websocket-development/ (personal) or .claude/skills/websocket-development/ (project).

Which AI agents can use websocket-development?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is websocket-development safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains websocket-development?

It is published by mindrally in mindrally/skills. It has 829 recorded installs.

More from mindrally/skills

View all →

fastapi-python

mindrally/skills

Expert in FastAPI Python development with best practices for APIs and async operations

Backend & APIs13.9K installs

nextjs-react-typescript

mindrally/skills

Expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI and Tailwind

Frontend & Design5.3K installs

web-scraping

mindrally/skills

Expert in web scraping and data extraction with Python tools

computer-vision-opencv

mindrally/skills

Expert guidance for computer vision development using OpenCV, PyTorch, and modern deep learning techniques for image and video processing.

Media & Creative3.8K installs

framer-motion

mindrally/skills

Expert guidelines for building performant animations with Framer Motion/Motion library in React applications

Expert guidelines for Chrome extension development with Manifest V3, covering security, performance, and best practices. Use when building browser extensions, creating popup UIs, implementing content scripts, working with Chrome APIs, managing extension permissions, or publishing to Chrome Web Store.

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.