Branch: refs/heads/master
  Home:   https://github.com/conformal/btcgui
  Commit: efda536ce1a9fb2891188cf8abf38dd8571cd5e0
      
https://github.com/conformal/btcgui/commit/efda536ce1a9fb2891188cf8abf38dd8571cd5e0
  Author: Josh Rickmar <[email protected]>
  Date:   2014-06-16 (Mon, 16 Jun 2014)

  Changed paths:
    M updates.go

  Log Message:
  -----------
  Switch from go.net to gorilla websocket.

Gorilla websockets use a buffer, and if the wallet sends a message
that exceeds the default 4096 byte send buffer, the message is
fragmented into multiple websocket frames.  go.net websockets do not
handle reading these fragmented frames correctly, and read a single
(possible fragmented) frame at a time with no way determine if a frame
is a continuation frame and stitch the message back together.  This
can result in unparsable wallet replies and notifications.  Switching
to gorilla websocket solves this by reading and combining continuation
frames.

A full switch to btcrpcclient would be preferred, but the APIs between
go.net and gorilla websockets are similar enough that this change
could be made quickly and immediately prevent the fragmentation
issues.


Reply via email to