如何解决ASP.NET WebForms - VB.NET 和 SignalR
这是我的 Hub 代码(非常简单):
Imports System
Imports System.Web
Imports Microsoft.AspNet.SignalR
Imports Microsoft.AspNet.SignalR.Hubs
Imports Microsoft.AspNet.SignalR.Client
Imports Microsoft.AspNet.SignalR.Messaging
Imports System.Threading.Tasks
Namespace SignalRChat
Public Class ChatHub
Inherits Hub
Public Sub Send(userName As String,message As String)
Clients.All.broadcastMessage(userName,message)
End Sub
End Class
End Namespace
-
这是我的 Aspx 页面代码:
Imports System.Web.UI.WebControls Imports Microsoft.AspNet.SignalR.Client Imports System.Threading.Tasks Public Class WebForm9 Inherits System.Web.UI.Page Public Shared hubConnection As HubConnection Public Shared chatHubProxy As IHubProxy Public Sub MyChat_init(sender As Object,e As EventArgs) Handles Me.Init If IsPostBack = False Then hubConnection = New HubConnection("https://localhost:44343/") hubConnection.TraceLevel = TraceLevels.All hubConnection.TraceWriter = Console.Out chatHubProxy = hubConnection.CreateHubProxy("ChatHub") hubConnection.Start().Wait() End If chatHubProxy.On(Of String,String)("broadcastMessage",Sub(ByVal userName As String,ByVal message As String) Dim li As ListItem = New ListItem li.Value = userName & " - " & message li.Text = userName & " - " & message ListBox1.Items.Add(li) End Sub) End Sub Protected Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click chatHubProxy.Invoke("Send","Io","Messaggio") End Sub End Class
我做了很多尝试,但总是没有结果......我添加了回发检查,因为我注意到我正在连接到集线器,并在每次 button_click 时重新开始......
顺便说一句,如果我在同一个项目中添加一个带有 JScript 代码的页面,我可以捕获所有在 JScript 代码上发送的消息,但是从 html 页面发送的消息都没有被 aspx 代码隐藏捕获......
这真的很奇怪,因为如果我去掉 listbox.items.add 方法,而是放一个“MsgBox”,然后它就会启动并工作……但我发现没有办法管理我的“消息”代码隐藏等更新我页面上的控件...也许是连接错误?你们中有人有使用 SignalR 和 WebForms 以及 VB.NET 代码隐藏的经验吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。