node.js - node-ipc 错误“消息很大,您可能需要考虑较小的消息。”
问题描述
所以我试图在 node.js 中使用 node-ipc 设置一个套接字服务器,然后从客户端发送数据。我可以很好地连接,但是当我发送数据时收到错误Messages are large, You may want to consider smaller messages.
,我已遵循此处的所有建议,但是,仍然未能成功解决问题。我尝试从 C 中的套接字连接以及终端发送。任何建议都会很棒,在此先感谢。
main.js
const ipc = require("node-ipc");
const socket = '/tmp/edufuse.sock';
ipc.serve(
socket,
function(){
ipc.server.on(
'myEvent',
function(data){
ipc.log('got a message : '.debug, data);
}
);
}
);
ipc.server.start();
test.json
```json
{ type: message, data: { foo: bar } }
来自终端的命令
pr -tF test.json | nc -U /tmp/edufuse.sock
解决方案
不幸的是,这似乎是 node-ipc 的一个潜在问题。为了解决这个问题,我使用了网络套接字和 TCP。
const net = require('net');
const port = 8080;
const host = '127.0.0.1';
var server = net.createServer(function(socket) {
socket.on('data', function(data){
let str = data.toString('utf8');
console.log(str);
try {
let json = JSON.parse(str);
console.log(json);
} catch (e) {
console.log('error str: ' + str);
}
});
socket.on('error', function(err) {
console.log(err)
})
});
server.listen(port, host);
推荐阅读
- c# - 如何包装解包私钥?
- java - Spring Boot 无法呈现(非常)简单的 index.jsp
- java - Keycloak 修改现有动作令牌 spi
- bitrix - 将 css Bootstrap 导入 Bitrix24 框架的最佳实践是什么?
- c# - C# DTLS 实现(服务器/客户端)
- ios - ios - 如何使用 Swift 4 延长位置跟踪时间
- c# - System.EntryPointNotFoundException + 无法安装包“SQLite.Interop.dll 1.0.103”。我的项目目标是'.NETFramework,Version=v4.6.1'
- cucumber - cucumber.runtime.CucumberException:无法实例化 stepDefinitions 类
- node.js - 将数据从节点 js 服务器发送到 React js 组件
- javascript - 如何在处理时在Javascript中为类数组赋值