ListenerManager
class- Modified
clearListeners()
method inListenerManager
class to avoid synchronization issues (Issue #180).
- Modified
ListenerManager
class- Modified
clearListeners()
method inListenerManager
class to release references held in an internal list (Issue #180).
- Modified
-
WebSocket
class- Added
isDirectTextMessage()
method. - Added
setDirectTextMessage(boolean)
method.
- Added
-
WebSocketListener
class- Added
onTextMessage(WebSocket, byte[])
method.
- Added
WebSocket
class- Added
getPingSenderName()
method. - Added
setPingSenderName(String)
method. - Added
getPongSenderName()
method. - Added
setPongSenderName(String)
method.
- Added
- Added
WebSocketFactory.getServerNames()
method. - Added
WebSocketFactory.setServerNames(String[])
method. - Added
WebSocketFactory.setServerName(String)
method. - Added
ProxySettings.getServerNames()
method. - Added
ProxySettings.setServerNames(String[])
method. - Added
ProxySettings.setServerName(String)
method.
- Added
getVerifyHostname()
method andsetVerifyHostname(boolean)
method toWebSocketFactory
class to cope with the issue reported by the Issue #116.
- Changed the visibility of
OkHostnameVerifier
class frompublic
topackage private
.
- Added hostname verification (Pull Request #107). Thank you, blunden.
- Added
DistinguishedNameParser
class andOkHostnameVerifier
class which were included in the pull request #107. They are from okhttp. - Added
WebSocketError.HOSTNAME_UNVERIFIED
. - Added
HostnameUnverifiedException
class.
- Added
ThreadType
enum. - Added
WebSocketListener.onThreadCreated(WebSocket, ThreadType, Thread)
method. - Added
WebSocketListener.onThreadStarted(WebSocket, ThreadType, Thread)
method. - Added
WebSocketListener.onThreadStopping(WebSocket, ThreadType, Thread)
method.
- Modified
PeriodicalFrameSender
to catchRuntimeException
whichTimer.schedule()
may throw. (Issue #86)
- Implemented a workaround for Issue #74 where URI.getHost() returns null on some Samsung devices.
- Changed the behavior in the case where the end of the input stream of
a WebSocket connection is reached before a close frame is received
from the server. The old behavior is 'report an error'. The new one
is 'ignore the error'. The behavior can be controlled by using
WebSocket.setMissingCloseFrameAllowed(boolean allowed)
method. (Issue #12, #63) - Added
WebSocket.isMissingCloseFrameAllowed()
method. - Added
WebSocket.setMissingCloseFrameAllowed(boolean)
method. - Added
WebSocketError.NO_MORE_FRAME
enum entry. - Added
InsufficientDataException
class. - Added
NoMoreFrameException
class.
- Fixed a bug where compressed messages from a server sometimes failed to be decompressed correctly. (Issue #60) Thank you, jszczygiel.
- Implemented a mechanism to set the maximum payload size. (Issue #8)
- Added a safeguard for the case where a server fails to send back a close frame. This is a bugfix for the issues #29 and #48.
- Added
WebSocket.disconnect(int, String, long)
.
- Changed the position of the call of
notifyFinished()
inReadingThread
andWritingThread
(#46)
- Modified
WebSocket.java
to close the socket explicitly on failure of connection establishment or opening handshake. For the issue #45.
- Modified
WebSocket.java
to movecallOnConnectedIfNotYet()
out of the synchronized scope ofmThreadsLock
for the issue #43.
- Moved creation of
InetSocketAddress
instance fromWebSocketFactory
toSocketConnector
to avoid hostname lookup inWebSocketFactory
(Issue #35).
- Added
onSendingHandshake
method toWebSocketListener
.
- Moved
Socket.connect()
fromWebSocketFactory.createSocket()
toWebSocket.connect()
in order to avoid network communication increateSocket()
. (Issue #26) - Introduced a mechanism to customize payload of ping/pong frames that are sent automatically. (Issue #30)
- Added
WebSocketError.SOCKET_CONNECT_ERROR
. - Added
WebSocketError.PROXY_HANDSHAKE_ERROR
. - Added
WebSocketError.SOCKET_OVERLAY_ERROR
. - Added
WebSocketError.SSL_HANDSHAKE_ERROR
. - Added
PayloadGenerator
interface. - Added
WebSocket.getPingPayloadGenerator()
method. - Added
WebSocket.setPingPayloadGenerator(PayloadGenerator)
method. - Added
WebSocket.getPongPayloadGenerator()
method. - Added
WebSocket.setPongPayloadGenerator(PayloadGenerator)
method.
- Added
OpeningHandshakeException
class which is a subclass ofWebSocketException
.connect()
throws this exception when it detects a violation against the WebSocket protocol. - Added
StatusLine
class.
- Modified
WritingThread.queueFrame()
to keep insertion order among high-priority frames (PING & PONG frames). - Fixed a NPE bug reported by Issue #23.
- Supported RFC 7692 (Compression Extensions for WebSocket).
- Added
PERMESSAGE_DEFLATE
toWebSocketExtension
. - Added
COMPRESSION_ERROR
toWebSocketError
.
- Added
onMessageDecompressionError(WebSocket, WebSocketException, byte[])
toWebSocketListener
. - Added
DECOMPRESSION_ERROR
toWebSocketError
. - Fixed a deadlock issue reported in #21.
- Changed the frame queue in
WritingThread
fromList
toDeque
for #21. - Changed
WritingThread
to process PING & PONG frames immediately.
- OSGi support.
Bundle-SymbolicName
iscom.neovisionaries.ws.client
. - Added
EXTENSIONS_CONFLICT
toWebSocketError
. - Added
PERMESSAGE_DEFLATE_INVALID_MAX_WINDOW_BITS
toWebSocketError
. - Added
PERMESSAGE_DEFLATE_UNSUPPORTED_PARAMETER
toWebSocketError
. - Added
UNEXPECTED_RESERVED_BIT
toWebSocketError
. - Modified
WebSocketFrame.toString()
to stringify the payload better. - Copied Extended and AutoFlush settings in
WebSocket.recreate(int)
. - Added
onSendingFrame(WebSocket, WebSocketFrame)
toWebSocketListener
. - Added
getFrameQueueSize()
andsetFrameQueueSize(int)
toWebSocket
for congestion control.
- Performance tuning on
ListenerManager
. - Added
WebSocket.addExtension(String)
method. - Added
WebSocket.addListeners(List<WebSocketListener>)
method. - Added
WebSocket.clearExtensions()
method. - Added
WebSocket.clearHeaders()
method. - Added
WebSocket.clearProtocols()
method. - Added
WebSocket.clearUserInfo()
method. - Added
WebSocket.removeExtension(WebSocketExtension)
method. - Added
WebSocket.removeExtensions(String)
method. - Added
WebSocket.removeHeaders(String)
method. - Added
WebSocket.removeListeners(List<WebSocketListener>)
method. - Added
WebSocket.removeProtocol(String)
method.
- Added
WebSocket.removeListener(WebSocketListener)
method. - Added
WebSocket.clearListeners()
method.
- Fixed a bug in
WebSocketFactory
.getRawPath()
andgetRawQuery()
should be used instead ofgetPath()
andgetQuery()
.
- Changed some error messages of
WebSocketException
. (Appendedcause.getMessage()
in cases where a cause is available.)
- Added
WebSocket.recreate(int timeout)
method. - Added
WebSocketFactory.getConnectionTimeout()
method. - Added
WebSocketFactory.setConnectionTimeout(int timeout)
method. - Added
WebSocketFactory.createSocket(String uri, int timeout)
method. - Added
WebSocketFactory.createSocket(URL url, int timeout)
method. - Added
WebSocketFactory.createSocket(URI uri, int timeout)
method.
- Added
throws Exception
to all methods ofWebSocketListener
. - Added
handleCallbackError()
toWebSocketListener
.
- Added
connectAsynchronously()
method toWebSocket
. - Added
onConnectError(WebSocket, WebSocketException)
toWebSocketListener
.
- Added
connect(ExecutorService)
andconnectable()
methods toWebSocket
. - Added
LICENSE
.
- Added
WebSocket.recreate()
method. - Added a copy constructor to
WebSocketExtension
.
- Added
flush()
,isAutoFlush()
andsetAutoFlush(boolean)
methods toWebSocket
. - Added variants of
WebSocket.disconnect
method.
- Fixed a bug in
WebSocketInputStream.java
which did not consider the case whereread
returns less bytes than required. (PR#2)
- Supported HTTP proxy.
- Changed the implementation class of the second argument of
WebSocketListener.onConnected
method fromHashMap
toTreeMap
withString.CASE_INSENSITIVE_ORDER
.
- Added
getPingInterval
/setPingInterval
methods toWebSocket
. - Added
getPongInterval
/setPongInterval
methods toWebSocket
.
- Added
isOpen
method toWebSocket
. - Fixed a bug around Basic Authentication.
- Added
getURI
method toWebSocket
. - Added
onStateChanged
method toWebSocketListener
.
- The first release.