我正在开发一个 node.js 应用程序,它将连接到一个 UNIX socket(在 Linux 机器上),并促进 Web 页面和该 socket 之间的通信。到目前为止,我已经能够使用我的主要 app.js 中的以下代码创建 socket 并进行来回通信:
var net = require('net');
var fs = require('fs');
var socketPath = '/tmp/mysocket';
fs.stat(socketPath, function(err) {
if (!err) fs.unlinkSync(socketPath);
var unixServer = net.createServer(function(localSerialConnection) {
localSerialConnection.on('data', function(data) {
// data is a buffer from the socket
});
// write to socket with localSerialConnection.write()
});
unixServer.listen(socketPath);
});
这段代码会让node.js在/tmp/mysocket
创建一个UNIX socket。我通过在命令行中使用nc -U /tmp/mysocket
进行测试,已经可以成功地通信。不过...
我想从我的node.js应用程序连接到一个已存在的UNIX socket。使用当前的代码,如果我从命令行中创建一个socket(nc -Ul /tmp/mysocket
),然后运行我的node.js应用程序,socket和我的应用程序之间没有通信('connect'事件没有从node.js服务器对象触发)。
有什么建议可以完成这个任务吗? 我尝试过使用node.js函数net.createSocket
而不是net.createServer
,但是到目前为止都失败了,我也不确定是否走上了正确的轨道。
net.connect
连接它。 - aleclarson