Friday, June 13, 2014

Domino WebSockets now with REST API

As of release 1.1.0
-added simple REST API for accessing the websocket server (see websocket-setup.pdf)
-updated the chat application example to use the new REST APIs (see classic note web form fmchat)
-updated JUnit tests for REST API, added a java JSON Client (make sure to setup basic auth via website rules)
-added simplified configuration. notes.ini parameters are only required for special configuration (i.e. clustering), or to override the defaults
-defaults:

WEBSOCKET_PORT=8889
WEBSOCKET_MAX_CONNECTIONS=100
WEBSOCKET_MAX_MSG_SIZE=1048576
WEBSOCKET_ENCRYPT=false
WEBSOCKET_ALLOW_ANONYMOUS=false
WEBSOCKET_CLUSTERED=false
WEBSOCKET_FILTER=null
(note: be sure to replace websocket.ntf, and chat.ntf designs on your server, and add websocket to the Domino Access Services in the server or website doc.)

download available on openntf

Monday, June 02, 2014

Latest Updates for Domino WebSocket

***websocket project has been broken out into its own project, xockets.io on openntf*** 
 
As of release 1.0.9 for websocket:
-Modified the plugin to accept command line parameters:
Available Command Line Operations:
  • tell http osgi websocket stop (Run this prior to stopping http to avoid server crashes. This command will terminate the threads cleanly)
  • tell http osgi websocket start
  • tell http osgi websocket count (gets the current count of websockets on the current server)
  • tell http osgi websocket count-all (gets the count of all the websockets across a cluster)
  • tell http osgi websocket show-all-users (shows all users currently using a websocket across a cluster)
  • tell http osgi websocket show-users (shows users on current server)
-Added code in all runnables to listen for a stop signal.
-Added better DoS attack prevention via below notes.ini params:
  • WEBSOCKET_MAX_MSG_SIZE (instead of waiting for entire message, it attempts to capture size incrementally and terminate connections if max)
  • WEBSOCKET_MAX_CONNECTIONS (will terminate connections if max is reached)
-Refactored the broadcast logic to create less documents. Now it only creates one document per server in a cluster as opposed to one per user.
-Updated testing code to execute randomly sized messages (see config.properties in com.tc.websocket.tests project)

-Overall this release should be the most stable.... unless I missed something :)


download available on openntf