我有发送消息的路由。消息首先保存在数据库中,然后广播给房间中的每个聊天订阅者。消息已成功保存,但服务器(节点/快递/打字稿)在命中 socket.io 实例时崩溃。错误是:
错误发送消息错误:回调不支持广播时,在BroadcastOperator.emit(/用户/Myname/桌面/代码/myapp/服务器/node_modules/socket.io/dist/broadcast-operator.js: 107:19)
路线是:
import { Response, Request } from "express";
import { ConversationControler } from "../../controllers/conversation";
import { SocketControler } from "../../controllers/socket";
interface SendMessage extends Request {
body: {
conversationName: string;
userId: string;
message: string;
};
}
const sendMessage = async (req: SendMessage, res: Response): Promise<any> => {
try {
const { conversationName, userId, message } = req.body;
await ConversationControler.sendMessage(
conversationName,
userId,
message
);
const io = req.app.locals.io;
SocketControler.dispatchMessage(io, conversationName, message);
return res.status(201)
} catch (err) {
throw new Error("error.send-message");
}
};
export default sendMessage;
sendMessage函数是:
static dispatchMessage(
io: Server,
conversationName: string,
message: string
) {
return io
.in(`chat@${conversationName}`)
.emit("newMessage", message, (err: Error) => {
if (err) {
throw new Error("error.send-message");
}
});
}
如果我删除回调,邮递员中的请求将永远运行。我让它,服务器崩溃。无论如何,消息都保存在数据库中。
如何解决此问题?
不支持广播回调时。只有当您向单个用户发射时,它才有效。
喜欢这个:
// client-side
socket.emit("update item", "1", { name: "updated" }, (response) => {
console.log(response.status); // ok
});
我试图编写套接字错误处理(确切地说是错误111-连接拒绝),但什么也没有发生。终端打印错误号111发生,但它没有做任何事情: Traceback(最近的调用为last):文件“test.py”,第20行,在s.connect((IP,PORT))中文件“/usr/lib/python2.7/socket.py”,第224行,在meth返回getattr(self._sock,name)(*args
我是一个初学者程序员,所以这很可能是显而易见的,我忽略了答案。但说到这个问题。 我有一个由两部分组成的程序(它比这个例子稍微复杂一点,但情况是一样的)。该程序在客户端和服务器之间触发了多条消息。我在服务器端有一个PrintWriter来向客户机发送消息,在客户机上有一个BufferedReader来读取发送的消息。当这个例子运行时,我得到了两行作为输出。第一个消息是两个消息,第二个消息是NULL。
在Spring批处理中,对数据库的读写操作最多可完成31 000条记录。在31 000条记录之后,会出现以下异常: 即使我在Connection属性中引发了超时,我仍然会得到相同的异常。
我有这个tcp插座 接受一条消息,将其转换为字符串并显示它,但是如果连接没有被客户端关闭,我就不能像预期的那样看到服务器上显示的消息 如何在不需要关闭客户端连接的情况下(由客户端)从客户端发送多条消息? 这里是NodeJs中的客户端 谢谢valeriano cossu
我一直在开发一个简单的python套接字聊天室,客户端和服务器可以在其中相互发送消息。我遇到的问题是服务器和客户端一次只能发送一条消息。我希望它能像任何其他聊天室一样工作,在那里我可以在发送消息时收到消息,任何帮助都会有很大帮助
问题内容: 大家好。我有一个使用ServerSocket和Socket类用Java编写的服务器。 我希望能够检测并处理断开连接,然后在必要时重新连接新客户端。 检测客户端断开连接,关闭套接字然后接受新客户端的正确步骤是什么? 问题答案: 大概是在从套接字读取数据,也许是在输入流上使用包装器,例如BufferedReader。在这种情况下,当相应的读取操作返回-1(对于原始read()调用)或为nu