OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / gorilla / websocket / json.go
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 writes the JSON encoding of v as a message.
13 //
14 // Deprecated: Use c.WriteJSON instead.
15 func WriteJSON(c *Conn, v interface{}) error {
16         return c.WriteJSON(v)
17 }
18
19 // WriteJSON writes the JSON encoding of v as a message.
20 //
21 // See the documentation for encoding/json Marshal for details about the
22 // conversion of Go values to JSON.
23 func (c *Conn) WriteJSON(v interface{}) error {
24         w, err := c.NextWriter(TextMessage)
25         if err != nil {
26                 return err
27         }
28         err1 := json.NewEncoder(w).Encode(v)
29         err2 := w.Close()
30         if err1 != nil {
31                 return err1
32         }
33         return err2
34 }
35
36 // ReadJSON reads the next JSON-encoded message from the connection and stores
37 // it in the value pointed to by v.
38 //
39 // Deprecated: Use c.ReadJSON instead.
40 func ReadJSON(c *Conn, v interface{}) error {
41         return c.ReadJSON(v)
42 }
43
44 // ReadJSON reads the next JSON-encoded message from the connection and stores
45 // it in the value pointed to by v.
46 //
47 // See the documentation for the encoding/json Unmarshal function for details
48 // about the conversion of JSON to a Go value.
49 func (c *Conn) ReadJSON(v interface{}) error {
50         _, r, err := c.NextReader()
51         if err != nil {
52                 return err
53         }
54         err = json.NewDecoder(r).Decode(v)
55         if err == io.EOF {
56                 // One value is expected in the message.
57                 err = io.ErrUnexpectedEOF
58         }
59         return err
60 }