为什么以下代码无法将我连接到集线器?
****我没有使用Azure函数****
我将天蓝色钥匙放在哪里?
如何构建这个复杂的网址?
这类似于我原来的天蓝色钥匙 AccessKey = 09988588488378383azudjGHG / E =&Version = 1123.0“;
我知道服务器和集线器正在工作,因为我使用Java创建了示例,并且该示例正在运行(请参见下面的实现)。
无论我尝试使用哪个URL,我都能获得“断开连接”的信息。
public event EventHandler<MessageEventArgs> OnReceivedMessage;
public void bindConnectionMessage(bool useHttps)
{
string urlRoot = "test.signalr.net/?AccessKey=Iwillneversharethiskeyjajajajaj####/E=&Version=1123.0";
var url = $"http{(useHttps ? "s" : string.Empty)}://{urlRoot}/ChatHub";
hubConnection =
new HubConnectionBuilder().WithUrl
(url)
.Build();
hubConnection.On<string>("Send", (message) =>
{
var finalMessage = $"Sending something {message}";
OnReceivedMessage?.Invoke(this, new MessageEventArgs(finalMessage));
});
hubConnection.On<string>("Echo", (message) =>
{
var finalMessage = $"says {message}";
OnReceivedMessage?.Invoke(this, new MessageEventArgs(finalMessage));
});
hubConnection.StartAsync();
Debug.WriteLine(IsConnected);
}
答案 0 :(得分:1)
start方法是异步的,您需要向该方法添加async并等待调用。
public async void bindConnectionMessage(bool useHttps)
{
.....
await hubConnection.StartAsync();
你应该很好。
这是我的完整辅助功能:
public static HubConnection Create(string serverUri, string hubName, Func<Task<string>> getToken)
{
var server = $"https://{serverUri}/{hubName}";
var hubConnection = new HubConnectionBuilder()
.WithUrl(server, options => {
options.AccessTokenProvider = getToken;
})
.Build();
return hubConnection;
}