Hi Jens,
I don't see any problems with your setup.
Our own Zyan-based application server works just as you described:
a console server (or a service) with lots of connected clients.
When the server goes offline or restarts, clients silently reconnect and
continue they work as if nothing happened. It works out of the box.
If all you need is a request-reply pattern, then just stick to simple RPC:
use server methods returning values. No events, no delegates, only functions.
Your shared interfaces project will end up with something like this:
var myResult = await Task.Run(() => proxy.GetMyResult(1, ""));
It's quite a possible area of research for Zyan. But I have to say that I don't
have resources to spend on things I'm not going to use myself. If you're brave
enough to investigate it yourself — you're welcome to fork the project and try
it on your own. Of course, I'll help you with any guidance you need.
Take in mind that a Raspberry with Linux+Mono onboard might probably work
right out of the box with no modifications in Zyan library. Of course,
I haven't had a chance to try it myself, but I think that Mono framework has
better chances to include all features needed for Zyan to work.
Microsoft has a bad habit of stripping off useful features (i.e. transparent
proxies, Remoting stack, etc.) from .NET framework when porting it to
mobile platforms. So I don't think that Windows 10 will be easy to support
anywhere except on desktop.
Regards, Alex
I put the server part in the console application and connected with 2
client against the server. This worked. But after about 2-5 minutes the
connection in the server part was broken.
I don't see any problems with your setup.
Our own Zyan-based application server works just as you described:
a console server (or a service) with lots of connected clients.
When the server goes offline or restarts, clients silently reconnect and
continue they work as if nothing happened. It works out of the box.
I want the server only respond to the requesting client.
...
It is possible to act the server like a web-server and the clients
place the request 1:1???
If all you need is a request-reply pattern, then just stick to simple RPC:
use server methods returning values. No events, no delegates, only functions.
Your shared interfaces project will end up with something like this:
public interface IMyServer
{
MyResult GetMyResult(int parameter1, string parameter2);
}
[Serializable]
public class MyResult
{
public string Payload { get; set; }
}
To add asynchrony, I recommend using .NET 4.5 Tasks, i.e.:var myResult = await Task.Run(() => proxy.GetMyResult(1, ""));
Are you looking to put the zyan framework to Windows10IoT. I'm devoping a
network scanning solution, independent working with zyan and want to
communicate with other processes to get a request and put the result.
It's quite a possible area of research for Zyan. But I have to say that I don't
have resources to spend on things I'm not going to use myself. If you're brave
enough to investigate it yourself — you're welcome to fork the project and try
it on your own. Of course, I'll help you with any guidance you need.
little Raspberry with Windows 10
Take in mind that a Raspberry with Linux+Mono onboard might probably work
right out of the box with no modifications in Zyan library. Of course,
I haven't had a chance to try it myself, but I think that Mono framework has
better chances to include all features needed for Zyan to work.
Microsoft has a bad habit of stripping off useful features (i.e. transparent
proxies, Remoting stack, etc.) from .NET framework when porting it to
mobile platforms. So I don't think that Windows 10 will be easy to support
anywhere except on desktop.
Regards, Alex