Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Redis和websockets的Erlang发布/订阅_Websocket_Redis_Erlang_Publish Subscribe_Chicagoboss - Fatal编程技术网

使用Redis和websockets的Erlang发布/订阅

使用Redis和websockets的Erlang发布/订阅,websocket,redis,erlang,publish-subscribe,chicagoboss,Websocket,Redis,Erlang,Publish Subscribe,Chicagoboss,我的目标是创建一个应用程序,用于管理各种客户端的发布/订阅。应用程序应该能够通过API接收新主题,然后通过websocket连接接受订阅者 我有它的工作,但我知道目前的解决方案有很多缺陷。它目前的工作如下: 我有一个chicago_boss应用程序,它有一个websocket端点供客户端连接,一旦客户端连接,我将该websocket连接的Pid添加到Redis中的列表中 客户端连接到“ws://localhost:8001/websocket/game\u通知” 该Websocket连接的Pid

我的目标是创建一个应用程序,用于管理各种客户端的发布/订阅。应用程序应该能够通过API接收新主题,然后通过websocket连接接受订阅者

我有它的工作,但我知道目前的解决方案有很多缺陷。它目前的工作如下:

我有一个chicago_boss应用程序,它有一个websocket端点供客户端连接,一旦客户端连接,我将该websocket连接的Pid添加到Redis中的列表中

  • 客户端连接到“ws://localhost:8001/websocket/game\u通知”
  • 该Websocket连接的Pid使用LPUSH game_notifications_Pid“”添加到Redis中。 3.Redis中用于游戏通知的最后10条消息被发送到websocket Pid
  • 将新消息发布到“/game\u notifications/create”
  • 使用LPUSH游戏通知“新消息”将消息添加到redis
  • Redis中所有带有关键游戏通知的PID将发送此新消息
  • 关闭websocket时,Pid将从Redis列表中删除

  • 请让我知道人们看到此设置存在哪些问题?谢谢

    这个问题太宽泛了。我们不知道,您是否需要邮件传递的任何保证。对于初学者,您可以使用
    mnesia
    ,而不是
    redis
    。Mnesia能够存储PID,而无需首先将其转换为字符串。接下来,您可以使用
    tinymq
    ,它是CB的一部分,提供发布/订阅功能。如果您在消息传递中需要保证,那么RabbitMQ可能会更好。。。我认为,这个问题不符合标准。@tkowal,谢谢,我需要保证消息传递,作为@tkowal回答的后续内容