例如,客户端通过套接字发送文档,而另一个客户端在该事件中进行监听以获取新文档。客户端A将新文档发送到套接字,并将其推入本地阵列。
// Client A
const documents = []
sendDocument() {
if (!this.document.trim()) return
// Predefine Object
const document = {
author: this.authUser.username,
date: new Date().toJSON(),
text: this.document.trim()
}
// Post via Socket
socket.emit(`send-document`, document)
// Add Document into local Documents-Array
documents.push(document);
},
然后套接字服务器将该文档广播到客户端B
// Socket Server
const docs = []
socket.on(`send-document`, async (data) => {
// We use PouchDB as DB Solution
try {
db.post(data)
} catch (err) {
throw err;
}
// Push new Document into Servers Docs-Array
docs.push(data)
// Broadcast new Document to other Clients
socket.broadcast.emit(`new-document`, data)
})
因此,现在客户端B监听该事件并获取客户端A发送的新文档
// Client B
const documents = []
socket.on(`new-document`, (document) => {
this.documents.push(document)
})
到目前为止,一切都很好。奇迹般有效。
但是现在我希望客户端A像客户端B一样监听客户端A触发的事件。
我不想让客户端推送其自己创建的文档-我希望客户端监听事件,然后推送接收到的文档。
为什么会问
好吧,这是因为PouchDB在Socket-Server上创建了_id属性,我需要所有客户端(尤其是创建者Client)使用。
所以我的问题是,如何监听客户端触发自身的事件。目前只有其他客户端在监听,但是创建者客户端不会在监听自己。
我希望清楚,我的意思是:)
有什么想法可以做到吗?