Skip to content

Latest commit

 

History

History
81 lines (58 loc) · 1.89 KB

write_WS.md

File metadata and controls

81 lines (58 loc) · 1.89 KB

Write with Websocket

Write records using Websocket protocol.

GET /logs/{name}/records

Upgrade: websocket
Connection: Upgrade
X-HTTP-Method-Override: POST

Params

Name In Description Default
name path Log name.

Response

Status: 101 Switching protocol

Code samples

Wsdump (Requires websocket-client package.)

$ echo 'my record content' | wsdump.py ws://localhost:7123/logs/myLog/records --headers 'X-HTTP-Method-Override: POST'

Python (Requires websocket-client package.)

import websocket

ws = websocket.create_connection(
  'ws://localhost:7123/logs/myLog/records', 
  header=['X-HTTP-Method-Override: POST']
)

record = 'my record content'

for i in range(10):
  ws.send(record)

Go (Requires github.com/gorilla/websocket package.)

import (
  "log"
  "net/http"
  "github.com/gorilla/websocket"
)

dialer := websocket.Dialer{}

headers := http.Header{}
headers.Set("Origin", "localhost")
headers.Set("X-HTTP-Method-Override", "POST")

conn, resp, err := dialer.Dial("ws://localhost:7123/logs/myLog/records", headers)
if err != nil {
  log.Fatal(err)
}

if resp.StatusCode != http.StatusSwitchingProtocols {
  log.Fatal("an error occured")
}

defer conn.Close()

record := []byte("my record content")

for i := 0; i < 10; i++ {
    err = conn.WriteMessage(websocket.BinaryMessage, record)
    if err != nil {
        log.Fatal(err)
    }
}