asp.net - ASP.NET WebForms - VB.NET 和 SignalR
问题描述
这是我的集线器代码(非常简单):
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”,那么它就会启动并工作......但我找不到从我的代码隐藏中管理“消息”的方法,所以更新我页面上的控件...也许是连接错误?你们中的任何人都有使用 VB.NET 代码隐藏的 SignalR 和 WebForms 的经验吗?
解决方案
推荐阅读
- html - Weasyprint 不打印超过一页的页面
- python - 我的卷积神经网络过度拟合
- javascript - 开始使用 React,无法渲染页面传递道具
- laravel-6 - Laravel 6.12 种子工厂看不到状态
- mysql - Google Cloud sql 5.6+ 是否已弃用存储过程中的“CREATE TEMPORARY TABLE”?
- spring - 我可以擦除 GSON 时间标记吗?例如)上午/下午
- puppeteer - 如何在 DIV 中获取图像 URL
- javascript - 在使用 Javascript 搜索对象时需要帮助
- reactjs - 为什么我的 setState 不能正常工作?我想添加一个 div 元素 onClick
- mysql - Laravel 连接两个表,包括 null