Functions.Templates/Templates/SignalRConnectionInfoHttpTrigger-CSharp-Isolated/SignalRConnectionInfoHttpTriggerCSharp.cs (30 lines of code) (raw):
using System.Collections.Generic;
using System.Net;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
namespace Company.Function;
public class SignalRConnectionInfoHttpTriggerCSharp
{
private readonly ILogger _logger;
public SignalRConnectionInfoHttpTriggerCSharp(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger("negotiate");
}
[Function("negotiate")]
public HttpResponseData Negotiate(
[HttpTrigger(AuthorizationLevel.AuthLevelValue, "post")] HttpRequestData req,
[SignalRConnectionInfoInput(HubName = "HubValue")] MyConnectionInfo connectionInfo)
{
_logger.LogInformation("SignalR Connection URL = '{url}'", connectionInfo.Url);
var response = req.CreateResponse(HttpStatusCode.OK);
response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
response.WriteString($"Connection URL = '{connectionInfo.Url}'");
return response;
}
}
public class MyConnectionInfo
{
public string Url { get; set; }
public string AccessToken { get; set; }
}