gpt4 book ai didi

javascript - 两个 node.js 服务器之间的文件/数据传输

转载 作者:行者123 更新时间:2023-11-30 05:38:13 30 4
gpt4 key购买 nike

我正在尝试建立一个小型系统,让一台服务器(也称为传感器)在发现另一台服务器(也称为服务器)可用时将数据文件传输到另一台服务器(也称为服务器)(都运行 node.js 应用程序)。

理想情况下,服务器应该监听来自传感器的连接,建立连接后,传感器会将所有可用数据文件传输到服务器,然后关闭连接。

我一直在研究一个名为 delivery.js ( https://github.com/liamks/Delivery.js ) 的库,在阅读文档时它看起来很有前途,但是,作为一个新手 js 程序员,我很难理解为什么我尝试这个例子是不工作。

我在传感器上使用以下代码:

var io  = require('socket.io'),
dl = require('delivery'),
fs = require('fs');

var socket = io.connect('http://192.168.0.14:5001');

socket.on('connect', function() {
log( "Sockets connected" );

delivery = dl.listen( socket );
delivery.connect();

delivery.on('delivery.connect',function(delivery){
delivery.send({
name: 'sample-image.jpg',
path : './sample-image.jpg'
});

delivery.on('send.success',function(file){
console.log('File sent successfully!');
});
});

});

以及运行示例代码的服务器:

var io  = require('socket.io').listen(5001),
dl = require('delivery');

io.sockets.on('connection', function(socket){
var delivery = dl.listen(socket);
delivery.on('delivery.connect',function(delivery){

delivery.send({
name: 'sample-image.jpg',
path : './sample-image.jpg'
});

delivery.on('send.success',function(file){
console.log('File successfully sent to client!');
});

});
});

服务器代码运行良好并创建了监听通信的套接字。然而,传感器代码抛出错误:

/Users/Oliver/Desktop/socket/delivery/test-delivery-client.js:5
var socket = io.connect('http://192.168.0.14:5001');
^
TypeError: Object #<Object> has no method 'connect'
at Object.<anonymous> (/Users/Oliver/Desktop/socket/delivery/test-delivery-client.js:5:17)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
at startup (node.js:123:16)
at node.js:1029:3

如果有人能解释我哪里出了问题,并指出如何满足我的需求,那就太好了。提前致谢。

最佳答案

您使用的只是服务器 socket.io它只能接受传入连接。要连接到另一台服务器,您需要 socket.io-client包裹。这将为您提供您通常在浏览器中使用的连接功能,现在您可以从 node.js 本身使用它。

关于javascript - 两个 node.js 服务器之间的文件/数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279922/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com