【发布时间】:2023-04-09 23:30:02
【问题描述】:
最近,我使用 NetMQ 在服务器和客户端之间发送或接收消息。 服务器代码如:
void Main()
{
CreatePullAndPushSocket();
Task.Factory.StartNew(()=> {
while (true)
{
Thread.Sleep(1);
if (Pull != null)
{
var message = Pull.ReceiveFrameString();
}
}
});
}
PullSocket Pull;
PushSocket Push;
private void CreatePullAndPushSocket()
{
Pull = new PullSocket("tcp://ip1:port1");
Push = new PushSocket("tcp://ip2:port2");
}
public void SendMessageToClient(string message)
{
if (Push != null)
{
Push.SendFrame(message);
}
}
客户端代码如下:
void Main()
{
new Thread(()=> {
while (true)
{
Thread.Sleep(1);
if (Pull != null)
{
var message = Pull.ReceiveFrameString();
}
}
}).Start();
}
PullSocket Pull;
PushSocket Push;
private void CreatePullAndPushSocket()
{
Pull = new PullSocket("tcp://ip2:port2");
Push = new PushSocket("tcp://ip1:port1");
}
public void SendMessageToClient(string message)
{
if (Push != null)
{
Push.SendFrame(message);
}
}
当我运行两个应用程序时,一个是服务器应用程序,另一个是客户端应用程序。
- 1:Client向Server发送消息
- 2:服务器可以接收到客户端的消息
- 3:服务器向客户端发送另一条消息
- 4:客户端收不到消息!!!
好奇怪,我已经按照https://netmq.readthedocs.io/en/latest/push-pull/的指导!
【问题讨论】:
标签: c# message-queue zeromq netmq