我在服务器端使用socket.io和nodejs来提供我的web应用程序和服务器之间的双向通信。
我正在使用socket.io应用程序接口发出命令和接收响应,但我不确定是否有更有条理的方法来定义用于向服务器发送命令和从服务器接收结果的“语言”。
为了向服务器发送命令,我从web应用程序发出如下事件(我使用下面的伪代码):
socket.emit('commandRequest', {
msg_id: '...'
username: '...',
command: '...'
});
服务器评估命令并发出如下响应:
socket.on('commandRequest', (data) => {
// parse and execute data.command
socket.emit('commandResponse', {
msg_id: data.msg_id,
username: data.username,
response: ...,
error: ...
});
})
最后,web应用程序侦听来自服务器的响应,并相应地更新应用程序内容:
socket.on('commandResponse', (data) => {
if (data.error) {
...
} else {
// interpret data.response
}
})
所以我使用了commandRequest/commandResponse事件命名范例,事件数据结构具有相应的{command: ...}
和{response: ...}
属性。
有没有一种更正式的方式来定义请求/响应“语言”,用于更复杂的客户端/服务器交互?与REST API使用HTTP请求实现的功能类似,但使用的是web套接字?
https://stackoverflow.com/questions/40003253
复制相似问题