github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/gorilla/websocket/json.go (about)

     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  }