Articles of dnode

无法用npm重build依赖关系

正如我试图推动我的nodejs应用程序在本地工作正常heroku,这是我得到的terminal: dcaclab@ubuntu:~/RubymineProjects/nodejs_consumer$ git push heroku master Counting objects: 1417, done. Compressing objects: 100% (1195/1195), done. Writing objects: 100% (1417/1417), 2.02 MiB | 22 KiB/s, done. Total 1417 (delta 247), reused 0 (delta 0) —–> Node.js app detected —–> Resolving engine versions Using Node.js version: 0.10.6 Using npm version: 1.2.21 —–> Fetching Node.js binaries —–> Vendoring […]

远程调用使用sockjs或dnode作为nowjs的可能替代品

我正在寻找Nowjs的替代品,用于在NODEJS服务器上从客户端进行远程函数调用,并且偶然发现了dnode和sockjs作为可能的选项。 有人可以指出一个在另一个之间的差异和优势,或者如果我应该看看其他模块?

是否有可能在不同的networking中创build点对点连接?

我想创build2个nodejs客户端之间的点对点连接。 使用websocket(dnode) 这里是极限: nodejs客户端运行在两台不同的networking上。 它们在NAT或防火墙后面没有静态IP(192.168.1.100 && 192.168.2.200) 没有权限更改路由器的映射。 在公共networking中只有静态Web服务器。 (可以通过人工更改文件) 可以在PC上安装应用程序(win) 可能吗? 谢谢

为什么Node.js函数不返回JSDom的serializeDocument结果?

我有PHP脚本作为一个DNode客户端。 然后,我有Node.js Dnode服务器,它评估从PHP客户端接收到的代码,并将其作为HTML返回。 然而,Node.js奇怪地对我(对一个Node.js新手)。 它不返回任何东西,即使返回的string不是空的。 我的代码如下: 使用DNode-PHP库的 PHP客户端代码: <?php require(__DIR__.'/../../vendor/autoload.php'); $loop = new React\EventLoop\StreamSelectLoop(); $dnode = new DNode\DNode($loop); $dnode->connect(7070, function($remote, $connection) { $js = 'var a = document.createElement("A");'; $js.= 'document.getElementsByTagName("body")[0].appendChild(a);' $remote->zing($js, function($n) use ($connection) { print_r($n); $connection->end(); }); }); $loop->run(); ?> Node.js服务器代码: var dnode = require('dnode'); var jsdom = require("jsdom"); var server = dnode({ zing: […]

我如何做多个Dnode连接?

我正在做一个自动完成input表单,我想发送我的用户types到远程数据库的build议。 我现在使用dnode,而且我不想在每次我的用户input时都做一个新的远程连接,所以我把远程function全局化了 dnode.connect(5050, function (remote) { window.remote = remote }); 所以每次我想检查我的mongodb我只是使用window.remote.function而不必重新连接。 有更好的方法吗? 谢谢

服务客户端DNode库 – “找不到模块dnode / web”

我正在尝试使用DNode教程在这里构build一个简单的双向DNode应用程序。 不过,我不知道如何服务于客户端的dnode js。 该示例包含以下代码: var js = require('dnode/web').source(); var httpServer = http.createServer(function (req,res) { if (req.url == '/dnode.js') { res.writeHead(200, { 'Content-Type' : 'text/javascript' }); res.end(js); } //… 但该应用程序不会运行。 我得到:“错误:找不到模块'dnode / web'” DNode通过npm安装。 有任何想法吗?

dnode是否具有authentication中间件?

我build立一个快速的应用程序,使用everyauth,并希望使用dnode。 我希望能够使用req.loggedIn布尔设置,但是为了dnode rpc调用。 这可以通过让dnode听取expression来完成吗? 它可以访问expression中间件的东西?

使用dnode从服务器发送消息到客户端

几个月前,我发现了nowjs和dnode,最后使用nowjs(和https://github.com/Flotype/nowclient )进行客户/服务器双向通信。 nowclient支持2个节点进程之间的nowjs通信(而不是节点进程和浏览器之间的nowjs开箱即用)。 然后,我可以将数据从客户端发送到服务器,从服务器发送到客户端。 我现在使用节点0.6.12,使用节点0.4.x来运行客户端是很痛苦的。 我正在仔细研究dnode,而且我不确定服务器到客户端的通信是如何工作的。 服务器是否可能向客户端发送直接消息? 这个想法是有一个客户端在服务器上注册(在第一次连接),并使服务器在需要时联系客户端。 据我所知,在服务器上调用一个方法是可能的,如果客户端首先从服务器请求一些东西。 那是对的吗 ?

node.js集群中的subprocess间通信选项

所以我现在在做一个node.js游戏服务器应用程序,在这里我碰到了一些问题。 我的问题是,我使用socket.io接受来自游戏客户端的入站连接。 这些客户端可能连接到游戏世界的几个区域或区域之一。 基本架构如下所示。 主进程为运行区域pipe理器进程的每个游戏区域分配一个subprocess; 一个专门维护区域数据的过程(三维模型,玩家/实体的位置等)。 主进程然后为其创build的每个区域pipe理器分派多个“通信线程”。 这些线程创build一个socket.io的实例并侦听该区域的端口(多个线程在单个端口上侦听)。 这些线程将在自己的进程中处理大部分游戏逻辑,并与支持游戏服务器的数据库进行通信。 唯一的问题是,在某些情况下,他们可能需要与区域经理沟通,以获得关于区域,球员等的信息。 举个例子:一个玩家想要在该区域内购买/出售/交易非玩家angular色(NPC)。 区域通信线程需要询问区域pipe理器线程,以确定玩家是否足够接近NPC进行交易,然后才允许交易发生。 我在这里遇到的问题是我打算利用node.js集群function,并使用进程的send()和on()方法来回传递消息。 除了我遇到的一个警告之外,这将是很好的。 由于cluster.fork()所有subprocess都只能与“主”进程通信。 node.js根进程成为所有通信的瓶颈。 我使用一个脚本在我的系统上运行了一些基准testing,它使用集群的进程间通信(IPC)来回传递消息,并跟踪每秒钟执行多less次中继。 看起来,最终节点以每秒约20k的速度在它可以中继的IPC数量方面达到最大值。 这个数字在Phenom II 1.8ghz四核笔记本电脑和FX-8350 4.0ghz 8核心桌面电脑上都是一致的。 现在这听起来相当高,除了这基本上意味着无论有多less区域或通信线程,所有的IPC仍然是通过一个单一的进程瓶颈,作为整个应用程序的“中继”。 这意味着尽pipe看起来每个单独的线程可以每秒钟接续20k个IPC,但是由于所有的通信都是通过一个线程进行的,整个应用程序作为一个整体将永远不会中继,即使是在一些疯狂的32核心系统上。 所以这就是我遇到的问题。 现在困境。 我已经阅读了很多有关其他各种选项,并阅读了20个不同的问题在这里堆栈关于这个话题,我已经看到了一些事情经常popup: Redis :我实际上是在我的服务器上运行Redis,并将其用作socket.io数据存储,以便多个线程中的socket.io可以共享连接数据,以便用户可以连接到N个socket.io线程为他们的区域,所以服务器可以自动负载平衡input连接。 我关心的是它贯穿networking堆栈。 对于同一台服务器上的多个进程之间的通信几乎不是理想的 我觉得延迟将是一个长期的主要问题。 0MQ(zeromq / zmq) :我以前从来没有用过这个,但最近我已经听到了一些。 根据我所做的阅读,我发现了很多人使用TCP套接字的例子,但是对于使用IPC的人来说并没有太多的嗡嗡声。 我希望也许有人在这里为IPC工作过0MQ(甚至可能在node.js中),并且可以为我提供一些启示。 dnode :我再也没有用过这个,但是从我所看到的看来,这是另外一个devise用于TCP的选项,这意味着networking堆栈再次成为可能。 node-udpcomm :有人在这里的另一个问题(这是我不能再次不幸find)连接这个。 我从来没有听说过,它看起来像一个非常小的解决scheme,打开和侦听UDP连接。 虽然这可能仍然会比TCP选项更快,但我们仍然有networking堆栈的方式吗? 我肯定喜欢在我的“程序员区”以外的一英里,就像这里,以及我不太了解的networking/计算机体系结构的东西。 无论如何,底线是我完全卡在这里,不知道在这种情况下IPC是最好的select。 我现在假设0MQ是我上面列出的最好的select,因为它是唯一一个似乎为通信协议提供了“IPC”选项,我认为这意味着它使用UNIX套接字或者是不通过networking堆栈,但我不能确认,或任何东西。 我想我只是希望这里的一些人能够足够的了解我的方向,或者告诉我我已经去了那里。 我正在开发的这个项目是一个多人游戏服务器,devise用来与多人游戏客户端“开箱即用”,并以Three.js为3Dgraphics/计算器提供动力。 客户端和服务器将在所有人都满意的情况下成为开放源代码,并且我希望确保架构尽可能地具有可扩展性,这样人们就不会在此基础上构build游戏,然后进行扩展并最终撞墙。 无论如何感谢您的时间,如果你真的读这一切:)