最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

unix套接字上的NodeJS

运维笔记admin8浏览0评论

unix套接字上的NodeJS

unix套接字上的NodeJS

快速和基本问题的NodeJS,我与Unix套接字之间为C ++应用程序和我的服务器的NodeJS服务器间通信的工作,

我已经写了我的服务器的NodeJS像这样:

var net = require('net');
var unixSocketServer = net.createConnection('/tmp/unixSocket');
unixSocketServer.on('connect',function(){
    console.log('unix server socket connected on /tmp/unixSocket');
    ...
});

但是我得到的连接拒绝错误。我可以理解的C ++应用程序没有打开/连接到插座呢。我的问题是,为什么这很重要?不应该在服务器的NodeJS等到“连接”事件发出的?我使用目前的NodeJS?我这么想吗?

回答如下:

好了,这里有一些误解。让我们从什么是“Unix套接字”真的是开始。我想你在想它只是就像通过OS /文件系统本身就是一个服务器上的文件状物品。这是不完全正确。虽然它是通过文件系统的确约束,这是不是一个真正的传统文件。相反,它就像一个TCP / IP套接字,除了没有绑定的IP和端口,文件路径的约束。

关键的一点还有,它只是一个绑定套接字具有不同的地址类型(以及一些额外的功能,但在这里,这是范围之外)。这样就意味着东西已经绑定套接字!在这种情况下,我们需要一台服务器,就像我们想,如果我们通信的一个“正常”的端口。如果没有绑定到路径的服务器,你会得到一个错误,您连接到端口一样,将用时没有监听。

要建立在节点中的UNIX域套接字服务器,这是很简单的:

'use strict';

const net = require('net');
const unixSocketServer = net.createServer();

unixSocketServer.listen('/tmp/unixSocket', () => {
  console.log('now listening');
});

unixSocketServer.on('connection', (s) => {
  console.log('got connection!');
  s.write('hello world');
  s.end();
});

请注意,是“正常”的插座和UNIX域套接字的其他不同点:在服务器与Unix域套接字进行,它不会自动销毁。相反,您必须unlink /tmp/unixSocket为了重复使用“地址” /路径

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论