SignalRを使用した通信に関してコネクションID取得エラーが出る。
.NET 6.0でのSignalRを使用したサーバ開発において、コネクションIDがうまく取得できずにエラーが発生します。
// エントリーポイント using Microsoft.AspNetCore.Builder; var builder = WebApplication.CreateBuilder(args); builder.Services.AddSignalR(); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.UseRouting(); // ★ここ★ // イロイロ調べてMapHubではだめだと判断 app.UseEndpoints(endpoints => { endpoints.MapHub<ChatHub>("/ws"); }); app.Run();
// Hubクラス using Microsoft.AspNetCore.SignalR; public class ChatHub : Hub { public async Task SendMessage(string user, string message) { Console.WriteLine(message); await Clients.All.SendAsync("ReceiveMessage", user, message); } }
「https://localhost:8787/ws」 にアクセスすると「Connection ID required」と出力され、うまくコネクションIDを取得できていないことが確認できます。
解決策をお願いします。
補足的な以下の質問もご対応お願いします。
WebSocketの進化系として使用している認識で、「http」スキームではなく、「ws」スキームでアクセスしたいのですが、SignalRでは実現できないのでしょうか。