123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- Package wsutil provides utilities for working with WebSocket protocol.
- Overview:
- // Read masked text message from peer and check utf8 encoding.
- header, err := ws.ReadHeader(conn)
- if err != nil {
- // handle err
- }
- // Prepare to read payload.
- r := io.LimitReader(conn, header.Length)
- r = wsutil.NewCipherReader(r, header.Mask)
- r = wsutil.NewUTF8Reader(r)
- payload, err := ioutil.ReadAll(r)
- if err != nil {
- // handle err
- }
- You could get the same behavior using just `wsutil.Reader`:
- r := wsutil.Reader{
- Source: conn,
- CheckUTF8: true,
- }
- payload, err := ioutil.ReadAll(r)
- if err != nil {
- // handle err
- }
- Or even simplest:
- payload, err := wsutil.ReadClientText(conn)
- if err != nil {
- // handle err
- }
- Package is also exports tools for buffered writing:
- // Create buffered writer, that will buffer output bytes and send them as
- // 128-length fragments (with exception on large writes, see the doc).
- writer := wsutil.NewWriterSize(conn, ws.StateServerSide, ws.OpText, 128)
- _, err := io.CopyN(writer, rand.Reader, 100)
- if err == nil {
- err = writer.Flush()
- }
- if err != nil {
- // handle error
- }
- For more utils and helpers see the documentation.
- */
- package wsutil
|