~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/gorilla/websocket/json.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
 
2
// Use of this source code is governed by a BSD-style
 
3
// license that can be found in the LICENSE file.
 
4
 
 
5
package websocket
 
6
 
 
7
import (
 
8
        "encoding/json"
 
9
        "io"
 
10
)
 
11
 
 
12
// WriteJSON is deprecated, use c.WriteJSON instead.
 
13
func WriteJSON(c *Conn, v interface{}) error {
 
14
        return c.WriteJSON(v)
 
15
}
 
16
 
 
17
// WriteJSON writes the JSON encoding of v to the connection.
 
18
//
 
19
// See the documentation for encoding/json Marshal for details about the
 
20
// conversion of Go values to JSON.
 
21
func (c *Conn) WriteJSON(v interface{}) error {
 
22
        w, err := c.NextWriter(TextMessage)
 
23
        if err != nil {
 
24
                return err
 
25
        }
 
26
        err1 := json.NewEncoder(w).Encode(v)
 
27
        err2 := w.Close()
 
28
        if err1 != nil {
 
29
                return err1
 
30
        }
 
31
        return err2
 
32
}
 
33
 
 
34
// ReadJSON is deprecated, use c.ReadJSON instead.
 
35
func ReadJSON(c *Conn, v interface{}) error {
 
36
        return c.ReadJSON(v)
 
37
}
 
38
 
 
39
// ReadJSON reads the next JSON-encoded message from the connection and stores
 
40
// it in the value pointed to by v.
 
41
//
 
42
// See the documentation for the encoding/json Unmarshal function for details
 
43
// about the conversion of JSON to a Go value.
 
44
func (c *Conn) ReadJSON(v interface{}) error {
 
45
        _, r, err := c.NextReader()
 
46
        if err != nil {
 
47
                return err
 
48
        }
 
49
        err = json.NewDecoder(r).Decode(v)
 
50
        if err == io.EOF {
 
51
                // One value is expected in the message.
 
52
                err = io.ErrUnexpectedEOF
 
53
        }
 
54
        return err
 
55
}