我有一个网站,每个月有几千次访问量,并且正在增长。 我正在给我的网站添加交互式的新功能。
现在我正在考虑这个问题,是应该为所有功能使用一个 WebSocket 连接还是为每个交互式功能创建一个新的 WebSocket 连接?
我在考虑性能问题。创建 WebSocket 意味着我必须在服务器上保存连接。但是,如果我为每个功能创建新的连接,则一个用户需要多个连接 = 我必须保存的连接数量要大得多。
如何正确处理这个问题?
我有一个网站,每个月有几千次访问量,并且正在增长。 我正在给我的网站添加交互式的新功能。
现在我正在考虑这个问题,是应该为所有功能使用一个 WebSocket 连接还是为每个交互式功能创建一个新的 WebSocket 连接?
我在考虑性能问题。创建 WebSocket 意味着我必须在服务器上保存连接。但是,如果我为每个功能创建新的连接,则一个用户需要多个连接 = 我必须保存的连接数量要大得多。
如何正确处理这个问题?
我应该为所有功能使用一个websocket连接还是为我的应用程序的每个交互功能创建一个新的websocket连接?
您应该只有一个websocket连接,没有理由使用多个websocket。
根据我的个人经验:
最好的设计是使用REST API处理来自客户端的操作,并仅在通知时使用Websocket。使用REST将为您管理解析。
无论如何,如果您希望您的整个应用程序通过websocket协议进行通信,您可以通过套接字发送类似于以下内容的内容
msg = {
"action": "fly",
"data": "plane"
}
然后在服务器端使用switch case语句处理它:
switch(msg.action){
case 'fly':
serverCommand.fly(msg.data);
break;
// other statements
}
或者你甚至可以这样做(不需要解析):
serverCommand[msg.action](msg.data);