如何在 socket.io CLIENT 上使用回调?

Posted

技术标签:

【中文标题】如何在 socket.io CLIENT 上使用回调?【英文标题】:How to use callback on a socket.io CLIENT? 【发布时间】:2016-01-06 10:19:33 【问题描述】:

我想回调服务器以确认我的客户端已收到呼叫。在相反的方向上,这是有大量文档的并且工作正常,但是我如何从客户那里得到确认?

注意:我在 android 上使用的是 socket-io-java-client https://github.com/socketio/socket.io-client-java,而不是 javascript,但这没关系。好吧,也许确实如此。

    socket.on("onMessage", new Emitter.Listener() 
                @Override public void call(Object... args) 
                    // I have the args here and the last argument is a callback,
                    // but what do I need to do to callback the server using that arg?
                
            )

在 Swift 中看起来像这样,但我不知道如何使用上述库在 Java 中做到这一点。

    socket.on("onMessage")  data, ack in
        ack?()
    

有没有人这样做或知道如何做到这一点?

【问题讨论】:

只是一个评论,但这些消息是在 TCP 之上发送的。您将已经知道该消息已收到。 @PaulNikonowicz 为什么我们有另一个方向的 ack?客户端到服务器的发射是作为 UDP 发送的吗?为什么我们在服务器端有“官方”确认,但在客户端没有? 【参考方案1】:

我忽略了这一点。这里贴了一个例子:

https://github.com/socketio/socket.io-client-java

// ack from client to server
socket.on("foo", new Emitter.Listener() 
  @Override
  public void call(Object... args) 
    Ack ack = (Ack) args[args.length - 1];
    ack.call();
  
);

[感谢刚刚通过 Skype 向我发送网址的 Alex。]

【讨论】:

以上是关于如何在 socket.io CLIENT 上使用回调?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android上使用socket.io和后台服务?

在 node.js 上的 socket.io 上发送消息 client->server->client

Socket.IO 客户端如何连接?

如何将 socket.io-client 导入每个组件? [复制]

如何在 Angular 2 应用程序中导入 socket.io-client?

如何使用 socket.io 触发消息?