We have a working test application in .net capable of streaming a single RIC and displaying all available fields for such RIC.
We are going to use it among others to investigate the fields and whether a RIC is available in the stream etc.
We have also started to modify the true feed server application in order to use the new technology, while remaining compatible with the older one.
So that we can switch between them if necessary.
This app is much more advanced than the simple test one and I have a few questions / remarks, that I am going to enumerate, without a specific order:
- Strings into enumerators
The DataState field comes as a string but we used to have it as an enumerator defined in RFA dll, which is much more solid.
I want to be sure the string can be parsed into such an enumerator, so can you confirm that all and only possible values are the following:
- NoChange
- Ok
- Suspect
- Unspecified
Same question for the StreamState enum:
- Closed
- ClosedRecover
- NonStreaming
- Open
- Redirected
- UnspecifiedStreamState
- The initial imaging of records
In the old technology, after the first login message we would receive a full image of all RICs (i.e. all available fields).
Then a second login message.
Finally partial updates.
The second login message was very useful.
We would indeed perform a check on available RICs and a lot of business logic deriving from it.
For example, we would distinguish between three states, Disconnected / Subscribing / Streaming (where Streaming only takes place after the initial imaging of all RICs)
This second login message seems not to take place anymore in the new technology, so I am looking to find a way to tell.
Can I safely assume that there is always a ‘Refresh’ (full) message for every RIC and only after that an ‘Update’ message (partial) for existing RICs ?
For non-existing RICs, can I assume that there is always at least a Status message coming back, telling the record in Closed or Suspicious, etc. ?
On the basis of this behavior I could reconstruct our business logic.
- The Post request of multiple RICs
I tried in two different ways:
- With n requests of 1 RIC
- With 1 batch request of n RICs
For former seems not to work or at least I am missing something.
Almost like it subscribes only to one RIC anyway, probably the last one sent.
The latter works fine, but so far only tested for about 40 RICs.
Will it work for few thousands too ??
- Buffer size
The WebSocket object is defined with 8K buffer size in your examples.
Do you think we shall use a larger size for real-world applications with thousands of RICs being streamed ?
What would happen and how can we inspect a buffer overflow ?