【问题标题】:cURL'ing a Phoenix socket卷曲凤凰套接字
【发布时间】:2018-02-03 02:09:57
【问题描述】:

有没有办法卷曲(或类似的)凤凰插座?

假设我的服务器在 localhost:4000 上运行,并且我的端点有:

defmodule MyApp.Endpoint do
  use Phoenix.Endpoint, otp_app: :my_app

  socket "/socket", MyApp.UserSocket

我有一个带有连接方法的 UserSocket 模块。我可以从命令行运行什么来连接到这个套接字?

【问题讨论】:

    标签: sockets curl elixir phoenix-framework channel


    【解决方案1】:

    cURL 默认支持长轮询。您不必添加任何标志,只需点击 websocket url,但您必须在 url 中使用 http(s) 而不是 ws(s) 协议。不要忘记将 Accept 和内容类型标头添加为 application/json。

    有一个缺点。您不能将消息发布到相同的连接:) 所以我想最好使用 telnet 并手动编写标头代码来启动轮询,这样您就可以从同一个控制台发送(发布)消息。通过这种方式,您可以调试“socket”是否为您的客户端推送返回 ok 回复。这种方法有什么更好的事情,您实际上可以使用 HTTP 101 协议升级到 ws(s) :)

    【讨论】:

    • 你能举例说明这个命令的样子吗?
    • 你指的是telnet部分吗?
    • 是的;因为 telnet 是一种更好的方式。
    • 抱歉耽搁了。我认为你绝对应该选择 curl。当您需要向服务器发送消息或接收消息时,只需取消它即可。因此,您应该更改为/logpoll 路径,而不是连接到/socket。您的简单配置应该是这样的hexdocs.pm/phoenix/Phoenix.Transports.LongPoll.html
    • Telent 可以工作,但你需要对消息进行解码和编码,这在 telnet 中很难做到
    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多