Tag: unix domain sockets

在Node.js中打开多个UNIX域套接字:为什么我得到EAGAIN错误?

我的用例(webservice): 多个客户端=> Webserver =>通过UNIX域套接字向C程序发送消息。 我一直在使用Apache + PHP的Web服务器层,但我目前正在用Node.jsreplace它的过程。 web服务最多可以达到100个请求/秒,所以当一个新的请求进来时,C程序会很忙,这是一个非常真实的情况.PHP处理得很好,但是Node.js通常会失败, { "code": "EAGAIN", "errno": "EAGAIN", "syscall": "connect", "address": "/tmp/service.sock" } 我假设这是因为PHP执行某种消息队列/重试,将确保所有消息发送到C程序(哪个Node.js不)。 有没有一种简单的方法来做同样的Node.js或将不得不实现一个自定义的消息队列? C套接字创build: int listenSocket, newSocket; struct sockaddr_un localAddress, remoteAddress; // Create socket if ((listenSocket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1){ printf("Error opening listener socket"); exit(1); } // Configure socket localAddress.sun_family = AF_UNIX; // Set UNIX domain […]

UNIX域套接字 – 长string问题

我尝试通过node.js中的UNIX域套接字发送一个相当长的string(abt 40000个字符)。 但它并没有发送正确的。 在接收器我多次获得string的一些部分…任何想法这里的问题是什么? 接收器是一个node.js应用程序,我通过它发送 nc -U /tmp/node.sock inheritance人我用来接收消息的node.js代码 var server = net.createServer(function (socket) { socket.on('data', function (data) { console.log(data.toString()); }); }).listen('/tmp/node.sock');

将Node.js作为客户端连接到Common Lisp服务器

我已经在node.js的alpha阶段有了一个小型的但CPU很重的应用程序,这是一个小游戏。 我遇到了性能问题,我需要加速至less20倍才能达到testing版。 而且由于并行执行会使我走得很远,所以我决定好的开始将是在进程和线程之间共享游戏映射,以便对其执行并行操作。 这在节点上是不可能做到的,所以我决定在CL(SBCL + Linux)中编写肉感的部分,并通过unix域套接字连接到它。 计划是: [players] <-> (node.js front server) <-> (SBCL performing game ticks) 重点是,我需要在node.js和SBCL之间传递类似于socket.io的快速消息。 这是什么没有工作(你可以跳过这一部分) 在Node端,我不能使用纯socket.io,因为它不支持Unix域套接字,但net模块,所以我可以至less做socket.write('raw data') – 现在好没有比什么都好。 在CL方面,我试图运行woo web服务器(它支持本地套接字),我可以从节点连接到它并传递原始数据,但是所有不必要的HTTP部分都涉及到,并且woo始终作为服务器运行。 它正在等待GET / HTTP/1.1 …. 我没有find一个方法来首先从woo发起一个消息。 另外,它是完全没有logging和未注释的,并且涉及很多对C库的FF调用,这些我都不太熟悉。 所以我又经历了几个没有编译的CL Web服务器,不支持unix套接字,被放弃或者没有logging,最终转移到了纯sb-bsd-sockets,最后转到了iolib,但是我仍然无法弄清楚。 iolib看起来很有前途,但我无法从节点连接到它。 我有这个: (with-open-socket (socket :address-family :local :type :datagram ;; :connect :passive :local-filename "/tmp/socket") (format t "Socket created") ;; (listen-on socket) ;; (bind-address […]