我有一个读取文件的进程,对于此测试,它每秒读取一行
我希望所有连接的websockets都接收相同的行
e.g;
如果用户1连接他接收第1行,经过第二行2 ..之后第二行第3行...第4行......等等
如果用户2在3秒后连接他接收第3行,在他之后连接第2行并接收第4行等等。
我该如何实现?我应该使用牛仔v1还是v2?
这是使用PubSub从文件读取的进程的代码
DispatchQueue.global(qos: .userInitiated).async { ... }
答案 0 :(得分:0)
我猜你正在使用Phoenix。在这种情况下,您可以从任何地方在您的端点上调用广播。因此,您可以用以下内容替换您的PubSub.publish行:
MyApp.Endpoint.broadcast("room1", "topic1", %{topic_data: chunk})
此类消息将发送给加入room1频道的所有用户" topic1"事件,所以在客户端你会收到它:
let channel = socket.channel("room1", {})
channel.join()
.receive("topic1", body => { console.log(body.topic_data) })