Elixir websocket / channel基本用法

时间:2017-08-31 04:20:41

标签: elixir phoenix-framework elixir-framework

我正在研究一个系统的PoC,其中移动应用客户端需要在服务器上连接,并且通信双向:用于更新服务器或由其更新。目前没有客户端到客户端的通信。

客户端通过HTTPS / POST方法登录服务器,如果凭据正常,则返回令牌。此令牌将由任何进一步的通信使用,以便对用户进行身份验证。我使用HTTPS登录的原因是还有一个用于其他目的的Web界面。

我找不到解释如何使用基于websocket传输的渠道实现此用例的教程或文档。到目前为止我发现的所有内容都是局部的,并且专注于某些特定方面(例如,身份验证,设置SSL / TLS等)并假设读者已经知道其余部分或者是聊天应用程序的过度简化实现。我确定我没有找到合适的地方......

我的问题是:

  1. 实现此用例的回调列表是什么? 任何一方

  2. 在服务器上:进程如何向该服务器发送通知 客户端

  3. 注意:我使用的是Elixir 1.5.1和Phoenix 1.3

1 个答案:

答案 0 :(得分:0)

来自https://imgur.com/a/TnlzW

  

每个频道都会实施这四个回调函数中的每一个的一个或多个子句 - join/3terminate/2handle_in/3handle_out/3

我链接的页面还包含在Phoenix上运行的MCVE套接字。在底部有一些Phoenix guide如何完成的例子。

将此问题应用于您的用例的唯一方法是使用一个身份验证库(例如server-client communication附带的Überauth)来处理每个后续连接请求上的令牌。