【问题标题】:How to ping a WebSocket server using a WampSharp Client?如何使用 WampSharp 客户端 ping WebSocket 服务器?
【发布时间】:2014-08-12 09:26:07
【问题描述】:

我使用 Wamp WS 在 python 中创建了一个 WebSocket 服务器。我正在使用以下代码将包含 WampSharp 客户端的 DotNet 应用程序与上述 WebSocket 服务器连接起来:

DefaultWampChannelFactory channelFactory = new DefaultWampChannelFactory();
channel = channelFactory.CreateChannel(serverAddress);
channel.Open();

现在我需要从客户端 ping 我的服务器。当我查看用 Python 创建的 Wamp WS 客户端时,它由 sendPing(self,payload) 函数组成,该函数将按如下方式 ping 服务器:

WampClientProtocol.sendPing(self, payload)

在服务器端有一个 onPing 函数来处理发送的 ping,如下所示:

def onPing(self, payload): print "收到ping消息成功"

因此,我想知道是否有任何方法可以从我的 WampSharp 客户端 ping 服务器?

WebSocket 服务器开始于:127.0.0.1:8000

提前致谢

【问题讨论】:

    标签: c# publish-subscribe autobahn autobahnws wampsharp


    【解决方案1】:

    目前没有支持的方式来执行此操作。

    请注意,WampSharp 包装了 WebSocket4Net 的 WebSocket 类,默认情况下,它每 60 秒自动发送一次 ping 消息。

    我无法从 WebSocket 类中找到对 WebSocket4Net 中手动 ping 发送的任何支持,但它可能存在但我错过了。

    如果需要,您可以找到支持手动 ping 发送的不同 WebSocket 客户端库,并实现包装它的 IControlledWampConnection(请参阅WebSocket4NetConnection),并使用指定要使用的 IControlledWampConnection 的 DefaultWampChannelFactory 重载(请参阅@987654322 @)。

    【讨论】:

    • 嗨.. 非常感谢您的回复。嘿,我想知道是否可以使用android客户端库实现ping?
    • 我还尝试在 dotnet 客户端中 ping。正如您所说,客户端在前 60 秒内成功 ping 通,但随后没有 ping 通。可能是什么原因?
    • 实际上我发现了关于第二个问题的问题,现在它每 60 秒 ping 一次成功。
    • 我不熟悉android客户端库。很高兴您在第二个问题上解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多