【问题标题】:How to send Messages from Client to Server with ClientID with Pusher如何使用 Pusher 使用 ClientID 从客户端向服务器发送消息
【发布时间】:2019-12-07 11:34:23
【问题描述】:

我在 ASP.net MVC 网站上将 Pusher Server 配置为:

[HttpPost]
public async Task<ActionResult> HelloWorld() {
var options = new PusherOptions
{
  Cluster = "ap2",
  Encrypted = true
};

var pusher = new Pusher(
  "123",
  "ABC",
  "XYZ",
  options);

var result = await pusher.TriggerAsync(
  "my-channel",
  "my-event",
  new { message = "hello world" } );

  return new HttpStatusCodeResult((int)HttpStatusCode.OK);
 }
}

我在 Java Swings 中创建了客户端:

PusherOptions options = new PusherOptions();
options.setCluster("ap2");
Pusher pusher = new Pusher("XYZ", options);

Channel channel = pusher.subscribe("my-channel");

channel.bind("my-event", new SubscriptionEventListener() {
@Override
    public void onEvent(String channelName, String eventName, final String data) 
    {
      System.out.println(data);
    }
  });

pusher.connect();

这工作正常,每当我从服务器发送任何消息时,我都会在客户端 JAVA 应用程序中收到消息。

但是我怎样才能将消息从客户端连同它的 ClientID 一起发送到服务器呢?

【问题讨论】:

  • 你能解释一下你需要什么而不是仅仅投反对票吗?查看您的代码,我们看到您可以从服务器端触发事件。但是您想从客户端发送并在后端接收它,不是吗?
  • 也许我下面的回答被某人否决了,因为它没有指定您如何从客户端拨打电话。如果你让它发挥作用,也许你可以在问题中包含这部分来帮助他们?
  • @RKrogh 是的,明白了,成功后我会回复的。

标签: java asp.net-mvc pusher


【解决方案1】:

您可以通过多种方式来做到这一点。如果您有用于登录用户的令牌或 cookie,您可以(并且应该)将它们用于敏感数据。否则,发送数据基本上可以安装在您的 http 正文中,并由您的端点作为参数或复杂对象接收。

public async Task<ActionResult> HelloWorld(string foo, string bar) {
//Stuff goes here
}

通常您的内容类型是 application/json 但您也可以使用其他类型。

那么身体可以简单地看起来像:

{
   "foo":"Hello",
   "bar":"World"
}

【讨论】:

  • 你说得对,我可以从客户端代码中调用服务器的 ActionResult。让我努力吧。谢谢老兄。
  • 不用担心。希望能帮助到你。 :)
猜你喜欢
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2017-01-12
相关资源
最近更新 更多