Tag: 协议

如何使用node.js定制自定义协议/scheme的路由?

我放弃了互联网,但没有find任何关于如何使用node.js自定义scheme(my-app://)创build路由的好资源。 严格来说,它不是真正的自定义协议,它将是http,但与另一种scheme一起服务。 我怎样才能做到这一点? 我可以安装任何npm软件包。

公约退出代码1

我试图用Pact库执行一些testing,我得到一些错误。 这里是testingconfiguration: const path = require('path'); const Pact = require('pact'); const expect = require('expect.js'); const config = require('../../../src/server/config'); const service = require('../../../src/routes/interactions/interactions.service'); describe('@component/interactions tests', () => { const url = 'http://localhost'; const port = 8989; const provider = Pact({ port: port, log: path.resolve(process.cwd(), 'test/component/interactions/log/interactions-pact.log'), dir: path.resolve(process.cwd(), 'test/component/interactions/pacts'), spec: 2, consumer: 'cx_issue', provider: 'interaction', // logLevel: […]

契约:在最终确定之前或之后,向经纪公司发布契约

在我的消费者testing结束时,我需要采取两个步骤: 最后确定模拟服务器 将该协议发布给经纪人。 起初,我在出版之前是这样发表的: var opts = { //broker info } pact_node.publishPacts(opts).then(() => { provider.finalize() }).catch(() => { console.error("Could not publish pact!") provider.finalize() }) 我意识到这一点是finalize()是pact文件写入的地方。 所以如果我按照这个顺序做事情,那么第一次运行testing时,什么都不会发布,随后的每一次我都会发布上一次运行的合同版本。 所以我试着颠倒了顺序,先完成模拟服务器,然后发布: provider.finalize().then(() => { console.log("Publishing pact to broker") pact_node.publishPacts(opts) }).catch(() => { console.error("Could not finalize provider!") }) 但是就此而言, then和catch区块都不会被执行。 我没有得到任何消息打印到控制台。 到底是怎么回事? 我应该在哪些顺序中调用这些函数,为什么第二个顺序不起作用?

我怎样才能发送一个webcal请求与node.js?

我尝试parsing一个icloud日历(CalDav)。 日历可以通过webcal-protocol访问。 日历的地址看起来像webcal://p19-calendarws.icloud.com/ca/…. 所以我(希望容易)的问题是:我怎样才能发送请求与webcal协议? 我试图与请求模块,但得到了错误消息[Error: Invalid protocol: webcal:]也nativ http模块似乎不适合。 编辑:我的尝试与http模块:var url =“webcal://p19-calendarws.icloud.com/ca/**************”; var http = require('http'); http.get(url, function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); }); 获取以下错误: Error: Protocol:webcal: not supported. 解决scheme:首先,我必须用日历地址中的https://replacewebcal:// 。 苹果将​​redirect到日历的icalendar文件。 由于redirect我使用请求模块,它处理redirect非常好。 var request = require('request'); var calendarUrl = 'webcal://p19-calendarws.icloud.com/*****'; var options = { url: […]

如何发送HTTP请求到v8debugging器?

V8 JavaScript引擎实现这个debugging器协议。 我启动V8(node.js),我可以通过浏览器连接到打开的端口(5858)。 什么是需要发送到V8debugging器的请求格式? 是GET还是POST? 提到的页面所说的唯一的事情是:“每个数据包都以string值的forms传输” 请给我一个示例请求:curl,node.js或者浏览器。

你如何让多个node.js命令行进程相互交谈?

我正在搞乱https://github.com/nodejitsu/forever ,并且一般都想知道如何以及如何将消息从一个命令行进程发送到另一个命令行进程。 在Web上,您使用HTTP来回发送请求。 但是我从来没有用命令行来做过这种事情。 我知道它可能与端口和套接字,但不知道从哪里开始… 这里是基本的设置: 你有一个mainProcess.js和childProcess.js ,它们是独立于命令行调用的。 不知何故,每当childProcess.js发送消息时, mainProcess.js必须运行callback。 ./parent.js : var forever = require("forever"); var mainProcess = forever.start(["node", "mainProcess.js"], {max: 1, silent: true}); mainProcess.on("stdout", function(data) { console.log(data.toString().trim()); }); mainProcess.on("stderr", function(data) { console.log(data.toString().trim()); }); forever.startServer(mainProcess); ./child.js : var forever = require("forever"); var childProcess = forever.start(["node", "childProcess.js"], {max: 1, silent: true}); childProcess.on("stdout", function(data) { // […]

如何获得对ut_metadata片段请求的响应? (node.js Bit Torrent BEP 0009)

我正在使用Node.js构build一个Bittorrent客户端,并且无法通过PWP元数据扩展( BEP 0009 ) 我从DHT( BEP 0005 )(我宣布)获得同行,然后使用networking套接字通过PWP发送Handshake和Extended Handshake。 buildHandshake = (torrent, ext) => { // torrent contains mainly infoHash const buf = Buffer.alloc(68) buf.writeUInt8(19, 0) buf.write('BitTorrent protocol', 1) if (ext) { const big = new Uint64BE(1048576) big.toBuffer().copy(buf, 20) } else { buf.writeUInt32BE(0, 20) buf.writeUInt32BE(0, 24) } torrent.infoHashBuffer.copy(buf, 28) anon.nodeId().copy(buf, 48) // tool that generates […]

与Thrift或Protocol Buffers的双向通信

(对不起我的英语不好) 可以build立一个应用程序(2),实现进程之间的双向通信。 我知道两个“框架”来沟通不同的过程(在不同的语言)节俭和协议缓冲区。 我知道,节俭在客户端/服务器模式下工作,所以如果我想要双向通信,我需要build立双方/进程像客户端和服务器的时间。 客户端/服务器<————————->客户端/服务器 我不知道这个方法是否正确。 但是..我找不到有关使用协议缓冲区的信息。 这可能吗? 我有一个C ++进程和一个Node.js(Javascript)应用程序.. C ++进程发送一个通知到Node.js应用程序(这工作很好,我使用节俭testing).. 另一方面,用户与Node.js应用程序进行交互..在某些情况下,node.js应用程序需要通知de C ++进程..所以我需要双向通信.. 任何想法? 提前致谢