2017-08-10 302 views
0

在下面的代码中,当我连接或断开客户端时,OnConnected和Disconnected事件触发两次。如何避免这种情况? 我有所有组件的最后一个版本。OnConnected和OnDisconnected事件触发两次?

Imports Microsoft.AspNet.SignalR 
Imports Microsoft.Owin.Cors 
Imports Microsoft.Owin.Hosting 
Imports Owin 
Public Class Form1 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim url As String = "http://localhost:8080/arc/" 
     WebApp.Start(url) 
    End Sub 
End Class 
Class Startup 
    Public Sub Configuration(app As IAppBuilder) 
     app.UseCors(CorsOptions.AllowAll) 
     app.MapSignalR() 
    End Sub 
End Class 
Public Class MyHub 
    Inherits Hub 
    Public Sub Send(name As String, message As String) 
     Clients.All.addMessage(name, message) 
    End Sub 
    Public Overrides Function OnConnected() As Task 
     Debug.Print("Client connected: " + Context.ConnectionId) 
     Return MyBase.OnConnected() 
    End Function 
    Public Overrides Function OnDisconnected(stopCalled As Boolean) As Task 
     Debug.Print("Client DISconnected: " + Context.ConnectionId) 
     Return MyBase.OnDisconnected(True) 
    End Function 
    End Class 

在Vb.net的客户端代码如下:

Imports Microsoft.AspNet.SignalR.Client 
Imports System.ComponentModel 
Imports Microsoft.AspNet.SignalR.Client.Hubs 

Partial Public Class MainWindow 
    Inherits Window 
    Implements INotifyPropertyChanged 
    Public connection As HubConnection = New HubConnection("http://localhost:8080/arc/") 
    Public myHub As IHubProxy 

    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded 
     DataContext = Me 
     connection = New HubConnection("http://localhost:8080/arc/") 

     myHub = connection.CreateHubProxy("myHub") 
     myHub.On(Of String)("addMessage", AddressOf addMessage) 
    End Sub 

    Async Sub btnShowSignal_Click(sender As Object, e As RoutedEventArgs) 
     Await connection.Start() 
    End Sub 
+0

显示您的客户代码 – Tester

+0

编辑并添加客户代码的问题。谢谢 – SomeOneMore

回答

0

有一天,我的MVC方法解雇了2倍(不signalr,我的网页是)。

我研究,我发现这一点:

从布局(母版)中删除您的图标(在HTML头),如果它与404错误代码来。如果它带有404,请从浏览器的控制台检查您的图标。

我不知道彼此之间是什么关系。但这一天对我来说是个解决方案。

只是一个想法。

+0

Ÿ尝试与其他项目和相同的行为... – SomeOneMore

+0

1 idea> 0 idea –