我正在尝试使用.NET中的SignalR创建一个既是客户端又是服务器的应用程序。最终目标是将其与我们现有的产品集成,这需要既是客户端又是服务器,因为一台计算机充当两者,而其他计算机都是客户端。
在服务器启动代码完成后运行的客户端启动代码中,运行以下代码:
m_hubConnection = new HubConnection( "http://localhost:8080/" );
m_myHubProxy = m_hubConnection.CreateHubProxy( nameof( ServerHub ) );
m_myHubProxy.On<string, string>( nameof( ServerHub.BroadCastMessage ), ( name, message ) => OnMessageReceived( name, message ) );
m_hubConnection.Closed += OnClosed;
m_hubConnection.Error += OnErrorReceived;
await m_hubConnection.Start(new WebSocketTransport());
await SendMessage( "Startup", "Sending from same thread as connection established" );
几乎立即调用OnClosed回调,因此连接在启动时立即关闭。
永远不会调用OnErrorReceived回调,因此它不会因任何明显的错误而关闭
Start方法挂起,永不回调
永远不会发送SendMessage方法
理想情况下,我希望连接打开,保持打开状态,点击SendMessage,向Hub发送消息,然后将相同的消息广播回客户端。
关于出了什么问题的任何想法?
答案 0 :(得分:0)
修正了它,疯狂的愚蠢错误。我只是从端口8080切换到8089.我猜其他东西正在使用端口8080,但无论如何,将客户端和服务器端都切换到端口8089固定它。