Test & Debug Websocket Server Connections Online.

You can test any WebSocket server using this tool, we have pre-filled it with our server endpoint.

Easy Integrations

1000+ Clients

No-log Policy

Delivering 10B+ messages/day

Managed WebSocket Server

Try our managed WebSocket servers with 99.99% uptime
  • Subscribe

    • var apiKey = 'oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm'; //Demo key, get yours at piesocket.com
      var channelId = 1;
      
      var piesocket = new WebSocket(`wss://connect.websocket.in/v3/${channelId}?api_key=${apiKey}`);
      
      piesocket.onmessage = function(message) {
          console.log('Incoming message', message.data);
      }
      
    • //View complete guide on: https://piesocket.com/docs/3.0/android-client
      var apiKey = "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm"; //Demo key, get yours at piesocket.com
      var channelId = 1;
      
      val request: Request = Request.Builder().url("wss://connect.websocket.in/v3/$channelId?api_key=$apiKey")
          .build();
      val listener = PieSocketListener();
      val ws: WebSocket = client.newWebSocket(request, listener);
    • //View complete guide on: https://piesocket.com/docs/3.0/ios-client
      var apiKey = "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm"; //Demo key, get yours at piesocket.com
      var channelId = 1;
      
      var request = URLRequest(url: URL(string: "wss://connect.websocket.in/v3/"+channelId+"?api_key="+apiKey)!)
      socket = WebSocket(request: request)
      socket.delegate = self
      socket.connect()
      
  • Publish

    • import requests
      import json
      url = "https://www.piesocket.com/api/publish"
      payload = json.dumps({
          "key": "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm", #Demo key, get yours at https://piesocket.com
          "secret": "d8129f82f8dd71910aa4a7efa30a7297", #Demo secret, get yours at https://piesocket.com
          "channelId": 1,
          "message": { "text": "Hello world!" }
      });
      headers = {
        'Content-Type': 'application/json'
      }
      response = requests.request("POST", url, headers=headers, data = payload)
      print(response.text.encode('utf8'))
    • $curl = curl_init();
      
      $post_fields = [
          "key" => "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm", //Demo key,  get yours at https://piesocket.com
          "secret" => "d8129f82f8dd71910aa4a7efa30a7297", //Demo secret, get yours at https://piesocket.com
          "channelId" => 1,
          "message" => ["text" => "Hello world!"]
      ];
      curl_setopt_array($curl, array(
        CURLOPT_URL => "https://www.piesocket.com/api/publish",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => json_encode($post_fields),
        CURLOPT_HTTPHEADER => array(
          "Content-Type: application/json"
        ),
      ));
      
      $response = curl_exec($curl);
      print_r($response)
    • var unirest = require('unirest');
      
      var payload = {
          "key": "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm", //Demo key, get yours at https://piesocket.com
          "secret": "d8129f82f8dd71910aa4a7efa30a7297", //Demo secret, get yours at https://piesocket.com
          "channelId": 1,
          "message": { "text": "Hello world!" }
      }
      
      var req = unirest('POST', 'https://www.piesocket.com/api/publish')
          .headers({
              'Content-Type': 'application/json'
          })
          .send(JSON.stringify(payload))
          .end(function(res) {
              if (res.error) throw new Error(res.error);
              console.log(res.raw_body);
          });
      
    • require "uri"
      require "net/http"
      require "json"
      
      url = URI("https://www.piesocket.com/api/publish")
      
      https = Net::HTTP.new(url.host, url.port);
      https.use_ssl = true
      
      request = Net::HTTP::Post.new(url)
      request["Content-Type"] = "application/json"
      request.body = {
          key: "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm", #Demo key, get yours at https://piesocket.com
          secret: "d8129f82f8dd71910aa4a7efa30a7297", #Demo secret, get yours at https://piesocket.com
          channelId: 1,
          message: { "text": "Hello world!" }
      }.to_json
      
      response = https.request(request)
      puts response.read_body
    • public class Publish {
        public static void main(String[] args) {
          OkHttpClient client = new OkHttpClient().newBuilder().build();
          MediaType mediaType = MediaType.parse("application/json");
          RequestBody body = RequestBody.create(
            mediaType,
            //Demo secret and key, get yours at piesocket.com
            "{\n    \"key\": \"oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm\",\n    \"secret\": \"d8129f82f8dd71910aa4a7efa30a7297\",\n    \"channelId\": 1,\n    \"message\": \"Hello world!\"\n}"
          );
          Request request = new Request.Builder()
            .url("https://www.piesocket.com/api/publish")
            .method("POST", body)
            .addHeader("Content-Type", "application/json")
            .build();
          Response response = client.newCall(request).execute();
        }
      }
    • package main
      import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
      )
      
      func main() {
        url := "https://www.piesocket.com/api/publish"
        method := "POST"
      
        //Demo secret and key, get yours at piesocket.com
        payload := strings.NewReader("{\n    \"key\": \"oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm\",\n    \"secret\": \"d8129f82f8dd71910aa4a7efa30a7297\",\n    \"channelId\": 1,\n    \"message\": \"Hello world!\"\n}")
      
        client := &http.Client {
        }
        req, err := http.NewRequest(method, url, payload)
      
        if err != nil {
          fmt.Println(err)
        }
        req.Header.Add("Content-Type", "application/json")
      
        res, err := client.Do(req)
        defer res.Body.Close()
        body, err := ioutil.ReadAll(res.Body)
      
        fmt.Println(string(body))
      }
    • # Demo API key and secret used, get yours at https://piesocket.com
      
      curl --location --request POST 'https://www.piesocket.com/api/publish' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "key": "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm",
          "secret": "d8129f82f8dd71910aa4a7efa30a7297",
          "channelId": 1,
          "message": "Hello world!"
      }'
    • # Demo API key and secret used, get yours at https://piesocket.com
      
      wget --no-check-certificate --quiet \
        --method POST \
        --timeout=0 \
        --header 'Content-Type: application/json' \
        --body-data '{
          "key": "oCdCMcMPQpbvNjUIzqtvF1d2X2okWpDQj4AwARJuAgtjhzKxVEjQU6IdCjwm",
          "secret": "d8129f82f8dd71910aa4a7efa30a7297",
          "channelId": 1,
          "message": "Hello world!"
      }' \
         'https://www.piesocket.com/api/publish'

Pricing

Build with our managed websocket technology,
Register for one of the following plans to get your API keys.

$0 / month

Free

  • 500k messages / day
  • 100 concurrent connections
  • Standard Support

$10 / month

Starter

  • 1 million messages / day
  • 500 concurrent connections
  • Standard support

$29 / month

Starter Plus

  • 3 million messages / day
  • 1000 concurrent connections
  • Standard support

$49 / month

Professional

  • 5 million messages / day
  • 2000 concurrent connections
  • Standard support

$99 / month

Professional Plus

  • 10 million messages / day
  • 5000 concurrent connections
  • Priority support

$139 / month

Premium

  • 15 million messages / day
  • 7000 concurrent connections
  • Priority support

$199 / month

Premium Plus

  • 20 million messages / day
  • 10000 concurrent connections
  • Priority support

$299 / month

Business

  • 30 million messages / day
  • 15000 concurrent connections
  • Priority support

$499 / month

Business Plus

  • 60 million messages / day
  • 20000 concurrent connections
  • Support over Slack

$999 / month

Enterprise

  • 100 million messages / day
  • 30000 concurrent connections
  • Advance data analytics & insights
  • Free integration assistance
  • Support over Slack

Enterprise Plus

Need a more customized plan for your business?

  • Upto Unlimited messages and connections
  • Bulk discounts
  • Customized solutions
  • Advance data analytics & insights
  • 24*7 Phone support

99.99% uptime with all plans.

  • What are concurrent connections?

    It is the number of users/peers/clients connected to a channel at a time.

  • How are messages counted?

    A message is counted as number of messages delivered, lets say there are 100 peers connected to your channel and one of them sends a message, it will be counted as 100 messages (99 if notifySelf is disabled).

  • What happens if I exceed my daily message quota?

    You will be charged $0.0000005 per message after your daily quota has exhausted. To help you stay alert, we send out daily usage alerts every midnight (GMT+5:30).

  • Can I upgrade mid-month?

    Yes, the pricing is prorated. You will pay for the new plan for the remaining days in the month, minus the amount not used from your previous plan's payment.

  • I'm looking to hire PieSocket developers

    Looking for help? we can connect you to a PieSocket development expert. First 1 hour free consultancy for clients on a paid plan, Get in touch.