Это действительно просто выбор дизайна программного обеспечения. Не существует «правильного» или «неправильного» ответа. Это почти такая же проблема, как и решение о том, выполняете ли вы две функции с отдельными именами для двух связанных функций или же используете одну функцию, с которой вы передаете разные аргументы.
Мое личное мнение заключается в том, что ваш код будет более проще, если бы вы использовали отдельное имя сообщения для личных сообщений, как это:
// send to a single user
socket.emit("privateMessage", {userID: xxxx, msg: "Hello"});
// broadcast to all users in my room
socket.emit("publicMessage", {msg: "Hello"});
А, то на сервере, нужно иметь отдельный обработчик для публичные сообщения и личные сообщения, что, вероятно, хорошо.
Вместо того, чтобы использовать общее сообщение с аргументами:
// send to a single user
socket.emit("message", {type: "private", userID: xxxx, msg: "Hello"});
// broadcast to all users in my room
socket.emit("message", {type: "public", msg: "Hello"});
Это просто дизайн выбор ваш. В любом случае сервер решает, что делать с сообщением и кто его отправляет. Лично я, вероятно, использовал бы отдельное имя сообщения для личных сообщений только потому, что я думаю, что код будет более четким как на клиенте, так и на сервере. – jfriend00
Спасибо за ваш ответ! – gel