javascript - 将 SSE 发送给特定客户

标签 javascript polling long-polling server-sent-events

我有一个网络应用程序,教师可以在其中创建一个类(class),并能够上传 Material 并将学生添加到类(class)中。学生还可以加入特定教师的类(class)并下载任何上传的 Material 。

当教师将 Material 上传到特定类(class)时,服务器发送事件会发送到每个连接的客户端,并从客户端执行检查以确定此事件是否与客户端有关。这是一个代码示例:

let eventSource = new EventSource(url);
eventSource.onmessage = function(event){
  if(joinedClasses.indexOf(event.data.class) !== -1){
    //notify the user.
  }
  //else just discard the message.
}

我想知道这是否是这样做的正确方法,还是应该使用(长)轮询或其他方法。谢谢。

最佳答案

根据您的后端结构,您可以尝试使用 3 种不同的方法:

1) 将用户 ID 作为 GET 参数发送,这样您就可以为每个用户提供特定的流。

2) 另一种方法是在服务器端有不同的事件,然后客户端将只监听与它们相关的事件。

3) 如果您没有数据库,在某些情况下也可以使用 session 。

关于javascript - 将 SSE 发送给特定客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023990/

相关文章:

c++ - 是否可以仅使用 OpenGL 确定默认帧缓冲区的大小?

delphi - 并行 ping 多个网络设备的最佳方法是什么?

Python 的 Bottle 和长轮询?

node.js - 如何防止 node.js 中的流式 http/s 服务器内存泄漏?

javascript - jquery点击不起作用

javascript - ajax 单击禁用提交按钮并再次启用

git - Jenkins PollScm 用于特定存储库

javascript - 提取括号之间的字符串

javascript - SAPUI5:仅设置可滚动表的元素

php - 在 Apache 上使用 PHP 进行长轮询