NISystemsEngineering / AsynchronousMessageCommunication

The Asynchronous Message Communication (AMC) Reference Library is a general purpose LabVIEW API for sending messages within a process, between processes, and between different LabVIEW targets (systems on a network) in a LabVIEW application.
https://decibel.ni.com/content/docs/DOC-10294
Other
8 stars 6 forks source link

Replace UDP with TCP or Network Streams #1

Open smithed opened 9 years ago

smithed commented 9 years ago

Migrated from internal feature list

cloew-ni commented 9 years ago

The purpose is to create a more robust and reliable version of AMC that will rely on a connection-based network architecture. It will require additional functions for creating and managing AMC connections between targets. The connection management should likely be its own library that may be used with other network communication protocols and interfaces.

smithed commented 9 years ago

By the way, the libraries I mentioned being a good fit for what AMC does were zeromq and nanomsg. Both are essentially queues where you can easily adjust the protocol (in-process to inter-process to TCP) and the target (local vs remote) by changing the connection string. Jack has created a wrapper and his own branch which added websocket support to the library. The downsides are that zeromq is not officially multi-threadable and nanomessage still has some weird issues on shutdown due to a race condition and an assert. Jack had been working on fixing those.