Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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
Sockets skype等应用程序上的问题_Sockets_Elixir_Phoenix Framework - Fatal编程技术网

Sockets skype等应用程序上的问题

Sockets skype等应用程序上的问题,sockets,elixir,phoenix-framework,Sockets,Elixir,Phoenix Framework,朋友们,我将计划一个类似skype的应用程序。我很少担心一个插座连接上有多个房间 假设我在网上有200个朋友。在phoenix socket中,当一个人加入一个房间时,他将能够发送和接收所有消息(由同一房间中的其他用户发送) 我的问题就在这本书里 我正在和我的朋友“A”聊天 “我自己”和“A”都加入了房间“1”,我们都成功地发送和接收消息 我的另一个朋友“B”给我发了一条信息,我还没有加入房间:2。我不会收到来自“B”的警报和通知 我的问题是我该怎么做。我应该根据我的在线朋友列表同时加入多个房

朋友们,我将计划一个类似skype的应用程序。我很少担心一个插座连接上有多个房间

假设我在网上有200个朋友。在phoenix socket中,当一个人加入一个房间时,他将能够发送和接收所有消息(由同一房间中的其他用户发送)

我的问题就在这本书里

  • 我正在和我的朋友“A”聊天

  • “我自己”和“A”都加入了房间“1”,我们都成功地发送和接收消息

  • 我的另一个朋友“B”给我发了一条信息,我还没有加入房间:2。我不会收到来自“B”的警报和通知

  • 我的问题是我该怎么做。我应该根据我的在线朋友列表同时加入多个房间吗?在这种情况下,我和其他朋友会有很多空间。是否有任何性能问题。因为我的在线朋友可能会计算超过200到400个。而且,当任何朋友在线或离线时,我也需要自己不断地加入和离开房间

  • 另一种情况是,我应该只保留一个聊天室。我应该编写一个包含我的逻辑的SubChaneel模块。每条消息将通过子信道参数进行广播。我的javascript和ui将控制哪些消息属于哪个用户(朋友)的房间。活动聊天(朋友)将被追加,非活动(在线)用户也将被追加到其隐藏的ui元素中


    • 我已经回答了非常类似的问题。总之,对于每个开放式聊天会话,我都会有一个用户频道和一个房间/频道。使用聊天频道广播消息,使用用户频道为跟踪当前订阅的UI部分的每个频道推送更新

      在我的聊天应用程序中,如果某人@提到某个人没有在该聊天室订阅,我会自动为该人创建一个订阅,并将其添加到用户界面上的订阅列表中

      如果用户没有打开聊天室会话,我不会推送聊天室消息。但是,我确实通过用户频道推送提醒(针对@at提及和直接消息)和未读消息通知

      我的应用程序只有一个聊天窗口布局(类似于Slack)。现在,如果有人在两个窗口之间切换,我每次都会重新加载消息。但是,每次加载房间都需要几秒钟的时间。我将修改我的设计,以便当用户更改房间时,我将旧房间保存在客户机中。这样我就可以在客户端重新加载文件室,而不必返回服务器。但是,我将需要保持多个聊天室频道打开,并处理未对活动聊天室开放的聊天室的传入消息