user3735503
user3735503

Reputation: 25

Can SignalR be used without a web browser client?

I'm working on a project to front an asynchronous process with a synchronous front-end to make the web call appear as synchronous, and am exploring the use of SignalR to tie it all together.

We host a service with a WCF endpoint which is asynchronous, and that works for most of our clients. They send us data, and we process it, without them getting a response after that data is processed. Our environment is multi-tier, and asynchronous by design.

There is a need, however, to host a synchronous front-end, where callers to our service can receive a response after the operation on the data through our environment has completed.

We need to allow the client to open up a connection to our WCF service, transmit data, and wait for a response. The idea is to have the WCF service create a unique identifier for the client and their data, and hand this data off to the asynchronous environment for processing. At the same time, the WCF service will open up a connection to a central HUB and wait for a response indicating that the particular data has completed processing. The HUB will then respond to the WCF service with a status, and the WCF service will respond to the original client.

I'm exploring SignalR for this purpose for two main reasons:

With everything I've read about SignalR, it uses javascript and RPC to communicate back to the client, and all of the implementations I've seen have a web browser as the client. In this implementation, the client is a .NET assembly; specifically, a WCF service. Is this feasible, or should I pursue a different technology?

I've included a high-level sequence diagram to help illustrate the process. Synchronous Fronted Call

Upvotes: 2

Views: 1076

Answers (1)

antlersoft
antlersoft

Reputation: 14751

SignalR is basically a mapping of two-way asynchronous communication over various web technologies (HTTP polling, web sockets, etc)

There are SignalR client libraries available for C#, Java, iOS and probably others. You are not limited to browser clients. (I believe the SignalR nuget package contains a C# client library, although it's been a while since I used it.)

Upvotes: 2

Related Questions