Skip to content

NetMQ vs. Router/Dealer #3

@christoph-neumann-schema-de

Description

Hi Doron,

I hope you are well, especially in these CoViD times.

I am a software engineer from Germany, and currently I apply NetMQ in a peer-to-peer messaging project, with NetMQ.Security.
You did not post about NetMQ.Security for some time, but I am still hopeful that you might provide some helpful advices.

I am using NetMQ 4.0.x in a hybrid .NET Framework and .NET Core environment (.NET Standard 2.0).
Thus, I am using NetMQ.Security not from nutget, but from github, which has been migrated to .NET Standard 1.6.
I am intending to use Router/Dealer ("Harmony Pattern") [1].

For NetMQ.Security, I am just doing the first steps, all experiments are still decoupled from my actual code.
Your post from 2013 [2] was helpful.
I got the Dealer/Dealer example up and running, in a NUnit class.
I am using BouncyCastle to successfully generate certificates at test run-time and could share the exact code with you, if necessary.

Then, I simply tried to change the server-side socket in your example to type RouterSocket; your comment suggest, that this should be possbible.
However, I get an NetMQ.Security.NetMQSecurityException ("Wrong length for protocol version frame").

Details:

The client initiates the connection and is waiting in line:
NetMQMessage incomingMessage= socket.ReceiveMultipartMessage();

The server is calling secureChanel.ProcessMessage the first time via line:
while (!secureChannel.ProcessMessage(incomingMessage, outgoingMessages))

This line throws an exception:
NetMQ.Security.NetMQSecurityException
HResult=0x80131500
Message=Wrong length for protocol version frame
Source=NetMQ.Security
StackTrace:
at NetMQ.Security.V0_1.SecureChannel.ProcessMessage(NetMQMessage incomingMessage, IList`1 outgoingMesssages) in C:...\NetMQ.Security\V0_1\SecureChannel.cs:line 103

I suspect, that the additional identity as part of the extended structure of NetMQMessage in case of Router/Dealer is the reason.
However, I am not quite sure how to proceed. Could you give me an advice?

Kind regards
Christoph

[1] https://netmq.readthedocs.io/en/latest/router-dealer/
[2] https://somdoron.com/2013/05/securing-netmq/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions