NSQ vb.net 消息处理器
NSQ vb.net MessageHandler
我正在尝试在 vb.net NsqSharp 中使用这个包
在 C# 中有一个很好的代码,但我在 vb.net.
中需要它
我得到它是为了向我的 NSQ 服务器发送消息,但问题是如何得到它。
但是我在 consumer.AddHandler(New HandleMessage())
上出错,我不知道我是否声明 HandleMessage
正确。
Imports NsqSharp
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim producer = New Producer("127.0.0.1:4150")
producer.Publish("test-topic-name", Me.txt_tx.Text)
producer.Stop()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim consumer = New Consumer("test-topic-name", "channel-name")
consumer.AddHandler(New HandleMessage())
consumer.ConnectToNsqLookupd("127.0.0.1:4161")
consumer.Stop()
End Sub
Public Interface IHandler : End Interface
Public Sub HandleMessage(message As Message)
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MsgBox(msg)
End Sub
Public Sub LogFailedMessage(message As Message)
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MsgBox(msg)
End Sub
End Class
But i get a error on Implements IHandler
对问题的描述很好,如果不描述您看到的 exact 错误消息,您将无法获得有用的答案。你确实写错了代码,VB.NET 需要在接口方法实现上使用 Implements
关键字。通过让 IDE 为您生成这些方法,您通常会陷入成功的陷阱。只要您键入 "Implements IHandler" 并按下回车键,IDE 就会自动添加方法。
所以库引用也可能有问题。一步一步:
- 工具 > Nuget 包管理器 > 包管理器控制台。
- 键入 "Install-Package NsqSharp"。看着它在下载和安装包时滚动。
- 将
Imports NsqSharp
放在源文件的顶部。
您现在应该得到:
Public Class MessageHandler
Implements IHandler
Private Sub IHandler_HandleMessage(message As Message) Implements IHandler.HandleMessage
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MessageBox.Show(msg)
End Sub
Private Sub IHandler_LogFailedMessage(message As Message) Implements IHandler.LogFailedMessage
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MessageBox.Show(msg)
End Sub
End Class
我正在尝试在 vb.net NsqSharp 中使用这个包 在 C# 中有一个很好的代码,但我在 vb.net.
中需要它我得到它是为了向我的 NSQ 服务器发送消息,但问题是如何得到它。
但是我在 consumer.AddHandler(New HandleMessage())
上出错,我不知道我是否声明 HandleMessage
正确。
Imports NsqSharp
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim producer = New Producer("127.0.0.1:4150")
producer.Publish("test-topic-name", Me.txt_tx.Text)
producer.Stop()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim consumer = New Consumer("test-topic-name", "channel-name")
consumer.AddHandler(New HandleMessage())
consumer.ConnectToNsqLookupd("127.0.0.1:4161")
consumer.Stop()
End Sub
Public Interface IHandler : End Interface
Public Sub HandleMessage(message As Message)
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MsgBox(msg)
End Sub
Public Sub LogFailedMessage(message As Message)
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MsgBox(msg)
End Sub
End Class
But i get a error on Implements IHandler
对问题的描述很好,如果不描述您看到的 exact 错误消息,您将无法获得有用的答案。你确实写错了代码,VB.NET 需要在接口方法实现上使用 Implements
关键字。通过让 IDE 为您生成这些方法,您通常会陷入成功的陷阱。只要您键入 "Implements IHandler" 并按下回车键,IDE 就会自动添加方法。
所以库引用也可能有问题。一步一步:
- 工具 > Nuget 包管理器 > 包管理器控制台。
- 键入 "Install-Package NsqSharp"。看着它在下载和安装包时滚动。
- 将
Imports NsqSharp
放在源文件的顶部。
您现在应该得到:
Public Class MessageHandler
Implements IHandler
Private Sub IHandler_HandleMessage(message As Message) Implements IHandler.HandleMessage
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MessageBox.Show(msg)
End Sub
Private Sub IHandler_LogFailedMessage(message As Message) Implements IHandler.LogFailedMessage
Dim msg As String = Encoding.UTF8.GetString(message.Body)
MessageBox.Show(msg)
End Sub
End Class