nodejs作为websocket客户端

只要在服务器中可用,我就需要将图像发送到客户端。 客户端不是浏览器,而是NAT(3Gnetworking)后面的某种设备(linux box),将图像作为文件读取,写入磁盘然后显示在屏幕上(这里没有浏览器)。 我是新的nodejs和websocket。 我可以在设备中使用nodejs作为websocket客户端,并使用nodejs作为服务器? 你能提供一个使用nodejs执行websocket客户端的例子吗? 在这种情况下,nodejs能检测3Gnetworking丢失,然后恢复或重新启动websocket? 如果在nodejs服务器将图像推送到设备nodejs(客户端)时发生连接丢失,会发生什么情况? 有什么简历解决scheme? 二进制Js如何处理2个nodejs之间的文件传输? 我可以使用ActiveMQ这样的MOM来实现一些pub / sub机制吗?

MongooseJS应该在副本集断开连接上发送事件吗?

使用单个服务器设置,我从驱动程序接收事件。 mongoose.connect('mongodb://localhost/mydb'); mongoose.connection.on('disconnected', function() {…}); mongoose.connection.on('error', function(err) {…}); 当使用副本集( mongoose.connect('mongodb://localhost:27017/mydb,mongodb://localhost:27018/mydb'); )时,closures所有连接的集成员不会触发相同的事件。 我不是很熟悉的本地驱动程序的内部,我想知道这是一个错误,或者如果我需要手动检测到这种情况。 我正在使用Mongoose 3.6.17(mongodb驱动程序1.3.18) Sans mongoose,我试着用相同的结果(没有来自副本集的事件)。 require('mongodb').MongoClient.connect("mongodb://localhost:27017,localhost:27018/mydb", function(err, db) { if (db) { db.on('disconnected', function() { console.log('disconnected'); }).on('error', function(err) { console.log('error'); }); } });

Sequelize .sync函数挂起:来自serial.klass的发射器

我从暂存计算机上完美运行的临时环境中取出了一个应用程序,但本地挂起了sequelize.sync函数。 该应用程序甚至没有达到“听港口…” 我已经通过Sequelize中的同步functionlogin,发现这是卡住的地方: (query-chainer.js中的第79 – 88行) var emitter = serial.klass[serial.method].apply(serial.klass, serial.params) emitter.success(function(result) { self.serialResults[serialCopy.indexOf(serial)] = result if (serial.options.success) { serial.options.success(serial.klass, onSuccess) } else { onSuccess() } }).error(onError) 此function不会返回到success或error 。 我不应该对代码做任何修改,因为我知道他们的库正在工作 – 我有一个本地副本,可以重构我的工作,我只需要分段副本在生产过程中快速更改生产重构。 有什么可以改变造成这个问题? 这似乎可能是一个连接问题? 我已经validation主机是端口为5432 localhost主机。 更正username , password和dbName 。 所有通过: sequelize = new Sequelize(config.db.dbName, config.db.username, config.db.password, { dialect: 'postgres', host: config.db.host, port: config.db.port, logging: […]

从命令行调用nodejs脚本不起作用

这是我的文件test.js包含的内容: console.log("Hello Stackoverflow"); 这是我尝试运行时发生的情况: $ ls test.js $ node test.js $ node test $ node "test" $ node "test.js" $ node –debug test.js debugger listening on port 5858 $ node –debug test debugger listening on port 5858 $ 注意,它永远不会工作:(我可以运行只是“节点”,并逐行评估JavaScript语句,但每当我尝试运行上面的脚本不起作用。 我正在运行OS X 10.8和一个全新的nodejs安装。

对Mongoose模型的虚拟属性进行挖掘

有没有一种方法来存储一个Mongoose模型的虚拟属性? 假设Problem是一个模型类, difficulty是一个虚拟属性。 delete Problem.prototype.difficulty返回false,并且该属性仍然存在,所以我不能用我想要的任何值replace它。 我也试过了 var p = new Problem(); delete p.difficulty; p.difficulty = Problem.INT_EASY; 它没有工作。 将undefined分配给Problem.prototype.difficulty或者使用sinon.stub(Problem.prototype, 'difficulty').returns(Problem.INT_EASY); 会抛出一个exception“TypeError:无法读取未定义的属性'范围',而做 var p = new Problem(); sinon.stub(p, 'difficulty').returns(Problem.INT_EASY); 会抛出一个错误“TypeError:试图包装string属性困难作为function”。 我正在用尽想法。 帮帮我! 谢谢!

如何从Node中将表值参数插入到Sql Azure中?

我正在研究一个批量插入数据的应用程序,以减less我想要使用Table Valued参数的查询数量。 例: var sql = require('node-sqlserver'); var connectionString = 'Driver={SQL Server Native Client 11.0};server=tcp:serverName.database.windows.net,1433;UID=user@serverName;PWD=password;Database={databaseName};Encrypt=yes;Connection Timeout=30;'; sql.open(connectionString, function(err, conn) { if(err) { return console.error('could not connect to sql', err); } var tableValuedObject = ???; var query = 'usp_InsertSomeTable ?'; conn.query(query, tableValuedObject, function(err, result) { if(err) { return console.error('error running insert', err); } }); }); 其中usp_InsertSomeTable被定义为 […]

如何从socket.io获取本地事件的数组?

我在我的节点websocket服务器上编写了一些“盾”代码,这样如果客户端试图发送超出状态的事件,套接字就会断开连接。 但是,由于socket.io处理他们的本地事件(如“连接”,“断开连接”等)类似于用户定义的事件,我很难区分它们之间的通用处理程序 有没有办法从socket.io中编程检索所有内置事件的列表? 我想避免硬编码这个列表。

如何纠正节点recursionprocess.nextTick?

bower install启动bower install时发生错误 (node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral. /usr/local/lib/node_modules/bower/node_modules/tmp/lib/tmp.js:261 throw err; ^ 系统信息: 凉亭版本:1.2.4节点版本:0.10.17 操作系统:Linux 3.5.0-39-generic ia32(UBUNTU) 如何解决这个问题,而不改变我的bower.json? 我的bower.json看起来像 { "name": "myapp", "version": "0.0.0", "dependencies": { "angular-unstable": "~1.1.4", "json3": "~3.2.4", "es5-shim": "~2.0.5", "angular-resource": "~1.0.5", "angular-cookies": "~1.0.5", "angular-complete": "*", "jquery": ">=1.8", […]

如何在一个compoundJS实例下运行多个“应用程序”?

多年来,我一直在使用nodeJS + expressJS为我们的组织开发定制的应用程序平台。 我们的中央框架为任何已安装的模块/应用程序提供了一套通用的服务(authentication,语言,pipe理等)。 我想用compoundJS来切换我们的框架。 不过,我不熟悉它(和Rails应用程序)强加的devise约束,似乎无法弄清楚如何完成我所追求的。 我想只有一个服务器实例运行:通过我们的通用身份validation检查所有请求的第一个进程。 然后传递给应用程序的控制器。 我也想分开每个应用程序:最好在一个单独的网站/应用程序/目录下。 这些应用程序中的每一个都可以使用compoundJS来devise。 我想安装它们,如: cd site/applications npm install site-hr npm install site-finance npm install site-payroll 这将有所有从/ hr,/ finance,/ payroll运作的路线。 我如何做到这一点? 有没有办法让compoundJSsearch模型/控制器/视图的非标准/应用程序/ *文件夹,并加载它们,同时保持中央/网站configuration? 或者,还有更好的方法?

mongoose – 访问版本的关键

当使用Mongoose保存对象时,版本关键属性被分配给文档。 根据Mongoose文档 ,版本键的默认值是__v 我想通过使用下面的命令通过mongoose对象来访问这个版本号属性,但是这两个调用都返回一个undefined的值: myObject.__v myObject["__v"] 如果我通过logging器直接查看对象,那么该属性是可见的,并分配一个值。 如果我使用JSON.stringify( myObject )那么我可以使用正则expression式访问__v属性。 更有趣的是,如果我遍历对象的键,我看到_version和__version属性,但没有__v属性。 任何人都可以告诉我如何直接访问__v属性?