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 }
61