我正在处理我的第一个套接字项目上的服务器端。该团队选择了socket.io。有关socket.io确认有效负载的最佳做法吗?
它提供的功能火的确认/回调回到那个正在与它的插座。
socket.on('anEvent', (payload, callback) => {
doSomethingWith(payload);
callback(true);
});
我喜欢一致性,所以我想送回来一致形状的物体。例如:
socket.on('anEvent', (payload, callback) => {
const responseData = doSomethingWith(payload);
callback({
'status': 200,
'data': responseData
});
});
或
socket.on('anEvent', (payload, callback) => {
try {
const responseData = doSomethingWith(payload);
if (!responseData) {
callback({
'status': 404
});
}
callback({
'status': 200,
'data': responseData
});
} catch(error) {
callback({
'status': 500,
'error': error.toString()
});
}
});
或相似。我不会提交这样的代码。别担心:d
不过,我一直在阅读socket server specs和状态代码没有多大意义了我。
是很疯狂的插座确认使用HTTP响应代码或有这方面没有最佳做法?
我实在看不出有任何理由使用HTTP响应代码为socket.io确认,除非你进行代理的底层操作,实际上HTTP是,你只想对这些状态前进。如果这是您自己的操作,那么只需创建您自己的状态代码,这对您正在做的事情有意义。在大多数情况下,我会认为通常的'err'值是'null',因为没有错误,并且在出现错误时包含错误代码会是最简单并且很好理解的策略。 – jfriend00
欣赏输入。重用地位的想法是因为其他开发者已经熟悉他们及其意义。但是我认为通过重用http代码可能会导致混淆。我想这个问题的答案是:做你认为最好的,但一致的。 – plumpNation