【发布时间】:2017-11-17 11:35:17
【问题描述】:
我按照this 和this 或this 教程在.net 核心中构建了一个WebSocket Web 应用程序。现在我正在尝试使用 Microsoft.AspNetCore.TestHost 对此编写一些 集成 测试
我创建 WebSocket 的方式
public static WebSocketClient StartWebSocketServer(string url)
{
var baseAddress = $"http://{url}";
var builder =
WebHost.CreateDefaultBuilder(new string[]{})
.UseEnvironment("Development")
.ConfigureLogging((ctx, logging) => logging.AddConsole())
.UseUrls(baseAddress)
.UseStartup<SocketsTestStartup>();
var server = new TestServer(builder);
return server.CreateWebSocketClient();
}
并且websocket客户端的创建在下面的代码中完成
ClientWebSocket testAppClient = new ClientWebSocket();
await
testAppClient
.ConnectAsync(
new Uri("ws://loclahost:52015/local"),
CancellationToken.None);
local是websocket服务器上的路径名
Startup.cs
app.MapWebSocketManager(
"/local",
serviceProvider.GetService<LocalServiceSocketHandler>());
反正连接产生如下错误
System.Net.WebSockets.WebSocketException : Unable to connect to the remote server
我的问题是如何让ClientWebSocket 连接到TestHost.WebSocketClient?
【问题讨论】:
-
我怀疑你仍然被困在这里,但我想我应该指出你的网址“loclahost”中的错字。
-
哈哈 :),感谢@KenLyon 指出
-
没问题。当我意识到您自己解决了问题时,我实际上正要删除它。我只知道我以前去过那里,当它变得很简单时感觉很糟糕。例如,我试图让 AGES 让 ws: 协议工作,然后最终意识到我必须使用 wss: 因为我的网站是 https。我原以为这是一些晦涩难懂的 MVC 问题。
标签: c# websocket integration-testing clientwebsocket asp.net-core-testhost