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 5package websocket 6 7import ( 8 "encoding/json" 9 "io" 10) 11 12// WriteJSON is deprecated, use c.WriteJSON instead. 13func 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. 21func (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. 35func 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. 44func (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} 56