我最近一直在与客户端(在浏览器中)和node.js一起开展项目。我正在使用Web套接字在两者之间进行通信。我在我的服务器上实现了一个通过WebSockets进行通信的API,服务器工作得很好。在浏览器中,我正在实现以下类(在javascript中)与API接口。
class ApiHandlerV1 {
constructor(apiUrl) {
//create the object
this.ws = null;
}
makeRequest(request,callback) {
//make a request
}
connect() {
//connect the websocket
this.ws = new WebSocket(this.url);
this.ws.onmessage = function () {
//call callback?
}
}
}
我所关注的问题是我希望能够调用makeRequest,提供回调,并且一旦套接字获得数据,就会触发回调。我曾经考虑过每次提出请求时重新定义.onmessage
,但这对我来说似乎很脏,并且很可能是一个很好的解决方案。
澄清:由于我实施服务器的方式,我只会从服务器收到一条消息。
正如多米尼克在评论中指出的那样,我还应该说,在我提出请求之前,我将打电话给.connect()
。在我的代码的其他部分之后,我将多次调用makeRequest。