views:

28

answers:

0
+1  Q: 

Which IPC to use?

Background

I got a client/server solution which is using a mix of services (like IUserService to add/remove/fetch etc) and messages (like UserCreated, CallArrived etc). Each client authenticates when connecting. It's a software as service solution and therefore all messages may not be transported to all connected clients. Therefore I need to be able to filter which messages goes to which client using client authentication info.

I'm currently using a homebrewn solution using sockets with sslstream and the binaryformatter to serialize messages. It's quite performant. The channels will also try reconnect automatically if they go down. Messages are discarded while connection is down and the clients resync when the connected event is triggered.

No clients are on the LAN.

My question:

What option do you recommend?

  • Stick with my current solution?

  • Use a servicebus (like nservicebus). Would it work well with clients on the internet and how easy is it to filter messages?

  • WCF - The nettcpbinding has a reliable flag but I cannot find any decent documentation about what it does. It seems like a pain to expose several interfaces using service hosts. How do I handle disconnections?

  • Something else?

I don't mind redesign parts as long as it get's better :)