在WebApi中跨任务共享会话

时间:2015-08-07 06:56:03

标签: c# websocket asp.net-web-api2

我有一个客户端程序,它发送给webapi并返回一个websocket。

一旦连接起来,我就向api发送第二个请求以开始一些测试。

然后webapi也会挂钩到websocket。在完成任务时发送消息。我使用System.Net.Websockets.ClientWebSocket

执行此操作
var cts = new CancellationTokenSource();
var socket = new ClientWebSocket();
string wsUri = "wss://localhost:44301/api/v1/devices/registerForSocket";
await socket.ConnectAsync(new Uri(wsUri), cts.Token);

RunTests(deviceid, socket, cts);

现在我需要为客户端添加能够轮询当前进度更新的功能。基本上,这将是一个bool,在进程运行时设置为false,然后在完成后恢复为true。

现在要做到这一点,我将不得不运行一个单独的ClientWebSocket来接收“PROGRESS”消息。

但是,我如何分享这两项任务之间的进展?这是最好的方式吗?

0 个答案:

没有答案