问题标签 [protocols]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
615 浏览

c++ - 如何向应用程序发送链接,就像 Spotify 一样

当我们在编辑器中保存关卡时,我们会创建一个包含它所包含的任何错误的日志文件。这些基本上由错误消息和允许用户在树视图中找到错误项目的路径组成。

我想要的是使该路径成为链接,例如 <a href="editor://path/to/gameobject" > Click to see object in editor</a >

我看到的关于这个的 SO 问题似乎指向这个 msdn 页面:http: //msdn.microsoft.com/en-us/library/aa767914.aspx

但据我所知,它将产生一个新的应用程序实例。我想做的就是以某种方式简单地“调用”我们的编辑器。我想,一种方法是生成它,并在开始时检查是否已经有一个实例正在运行,如果是,则将命令行发送给它。

这是最好的方法吗?如果是这样,关于如何做到最好的任何想法?还有什么其他方法可以做到这一点?

另外:msdn 解决方案是否可以跨浏览器工作?我们的编辑器仅在 Windows 中运行,但人们使用 IE、Fx、GC 和 Opera。

0 投票
4 回答
4060 浏览

web-services - SOAP 与 HTTP

我读过 Web 服务是通过 SOAP over HTTP 传输的。那么SOAPHTTP之间有什么区别,如果它们都是通信协议呢?

有什么区别还是 HTTP 只是 SOAP 使用的绑定?

0 投票
3 回答
98 浏览

networking - 传输协议中未使用的字段值

我正在为 GSM 网络内部使用的一个小协议编写技术文档。该协议在连续的字节流中使用模式 [id1] + [byte[] data1]、[id2] + [byte[] data2] 等。

关键是由于各种原因(未来的可扩展性和向后兼容性),某些字段未使用。该字段的值是选择谁实现协议(目前默认值来自用于实现协议的语言/框架,即字节数组元素的默认值)。

现在的问题。以某种方式为未使用的字段施加默认值是否有用?

0 投票
5 回答
1571 浏览

iphone - iPhone + 共享点

有没有办法将 iPhone 与 Sharepoint 连接起来?我想知道,是否可以在 Cocoa/Objective-C 中实现 Sharepoint 的 HTTP 或 WEBDAV 协议。

问候

0 投票
7 回答
5068 浏览

.net - 如何使用 Erlang 与其他网络应用程序交互?

我正在学习 erlang,我对 mnesia db 非常着迷。我想使用 erlang 作为后端在 C#/F# 中构建一些真实世界的应用程序。

我正在寻找一个很好的解决方案来与外界的 erlang 节点进行通信。

到目前为止我发现了什么:

(A) OTP.net,一个开源的 .net 库,实现“本机”erlang 通信协议

这里的问题:

  • 库不是很成熟
  • 我不喜欢从 Java 移植的对象模型(太多几乎完全相同的 BCL 类副本)
  • 我不喜欢用于连接的线程模型。
  • 需要许多开放的 TCP 端口
  • 缺乏安全感

(B) 在 erlang 中使用端口/套接字并实现自定义协议。

这里的问题:

  • 我没有任何经验
  • 难以为未来版本维护/扩展

您对此主题有什么建议和经验吗?

我应该使用 OTP.net 库来满足我的需求还是尝试从头开始实现一个新协议?

JSON 或 REST 解决方案呢?是否有任何 erlang 库可以解决问题?

0 投票
12 回答
75523 浏览

embedded - 简单的串行点对点通信协议

我需要两个设备(PC 和微控制器)之间的简单通信协议。PC 必须向 micro 发送一些命令和参数。微型必须传输一个字节数组(来自传感器的数据)。

数据必须有噪声保护(除了奇偶校验,我想我需要一些其他的数据校正方法)。

有没有标准的解决方案来做到这一点?(我只需要一个想法,而不是完整的解决方案)。

PS任何建议表示赞赏。PPS 很抱歉有任何语法错误,希望你能理解。

编辑1.我还没有决定是主/从协议还是双方都可以发起通信。PC 必须知道 micro 何时完成工作并可以发送数据。如果数据准备好,它可以连续轮询微,或者微可以在工作完成时发送数据。我不知道哪个更好更简单。

编辑 2. 硬件和物理层协议。由于PC 使用RS-232 C 串行标准,我将使用异步通信。我将只使用 RxD、TxD 和 GND 信号。我不能使用额外的电线,因为微控制器 AFAIK 不支持它们。顺便说一句,我使用的是AVR ATmega128 芯片。

所以我将使用固定波特率、8 位数据、2 个停止位而不进行奇偶校验(或使用?)。

数据链路协议。这就是我的问题主要关心的问题。感谢您推荐HDLCPPPModbus协议。我会研究它。

0 投票
6 回答
6280 浏览

testing - OpenID 提供者的合规性测试

OpenID 提供商有哪些自动化标准一致性测试?

我正在对OpenID提供程序的实现进行更改,以将其从标准的 1.1 版升级到 2.0 版。

在发布代码之前,我想确保它符合标准的规范。为了测试 Web 标准合规性,W3C 提供了验证器工具。有哪些工具可以让我将自动化测试仪指向我的 OpenID 提供商并获得符合标准的报告?

0 投票
2 回答
16095 浏览

http - Which encoding is used by the HTTP protocol?

When a browser sends an HTTP request to a web server, what encoding is used to encode the HTTP protocol on the wire? Is it ASCII? UTF8? or UTF16? Or does it specify which encoding it uses in a predefined format (before any decoding takes place?)

P.S I'm not asking about the actual payload (e.g. HTML) of the request/response. I'm asking about the request line (i.e. GET /index.html HTTP/1.1) and headers (i.e. Host: google.com)

0 投票
2 回答
714 浏览

c# - 你将如何解决这个数据解析问题?

我们正在为同时开发的一个硬件实现一个模拟器。这个想法是为第 3 方提供一个软件解决方案来测试他们的客户端软件,并为硬件开发人员提供一个参考点来实现他们的固件。

为硬件编写协议的人使用了名为 INCA_XDR 的自定义版本的 SUN XDR。它是一个序列化和反序列化消息的工具。它是用 C 语言编写的,我们希望避免使用任何本机代码,因此我们手动解析协议数据。

该协议本质上相当复杂,数据包可以有许多不同的结构,但它始终具有相同的全局结构:

[头部] [介绍] [数据] [尾部]

如您所见,有很多开销数据,但这是因为该协议需要同时使用 RS232(点对多点)和 TCP/IP (p2p)。

或者它可能具有完全不同的结构:

有时它只是一个 DRCode,没有额外的数据。

基于组和类型字段,模拟器需要执行某些操作。因此,首先我们查看这两个字段,并在此基础上了解对数据的期望,并且必须正确解析它。

然后需要生成响应数据,该数据又具有许多不同的数据结构。一些消息只是生成一个 ACK​​ 或 NACK 消息,而另一些则生成一个带有数据的真实回复。

我们决定把事情分成小块。

首先是 IDataProcessor。

实现此接口的类负责验证原始数据并生成 Message 类的实例。他们不负责通信,他们只是传递一个字节[]

原始数据验证意味着检查标头中的校验和、CRC 和长度错误。

生成的消息被传递给实现 IMessageProcessor 的类。即使原始数据被认为是无效的,因为 IDataProcessor 没有响应消息或其他任何东西的概念,它所做的只是验证原始数据。

为了通知 IMessageProcessor 有关错误,向 Message 类添加了一些附加属性:

它们与协议无关,只存在于 IMessageProcessor

IMessageProcessor 是完成真正工作的地方。由于所有不同的消息组和类型,我决定使用 F# 来实现 IMessageProcessor 接口,因为模式匹配似乎是避免大量嵌套 if/else 和 caste 语句的好方法。(我之前没有使用过 F# 甚至是 LINQ 和 SQL 以外的函数式语言)

IMessageProcessor 分析数据并决定它应该在 IHardwareController 上调用哪些方法。拥有 IHardwareController 似乎是多余的,但我们希望能够将它换成不同的实现,而不是被迫使用 F#。当前的实现是一个 WPF 窗口,但它可能是一个 Cocoa# 窗口或只是一个控制台。

IHardwareController 还负责管理状态,因为开发人员应该能够通过用户界面操作硬件参数和错误。

因此,一旦 IMessageProcessor 调用了 IHardwareController 上的正确方法,它就必须生成响应消息。同样......这些响应消息中的数据可以有许多不同的结构。

最终,IDataFactory 用于将 Message 转换为原始协议数据,准备好发送到负责通信的任何类。(例如,可能需要对数据进行额外封装)

编写这段代码并不“难”,但所有不同的命令和数据结构都需要大量代码,而且我们可以重用的东西很少。(至少就我现在所见,希望有人能证明我错了)

这是我第一次使用 F#,所以我实际上是边学边学。下面的代码远未完成,可能看起来像一团糟。它只实现了协议中的所有消息中的一小部分,我可以告诉你有很多很多。所以这个文件会变得很大!

重要提示:字节顺序通过网络反转(历史原因)

(请注意,在真实来源中,类有不同的名称,比“硬件”更具体)

我希望得到建议、改进代码的方法,甚至是处理问题的不同方法。例如,使用 IronPython 等动态语言会不会让事情变得更容易,我是不是走错了路。你对这样的问题有什么经验,你会改变什么,避免什么等等......

更新:

根据布赖恩的回答,我写下了以下内容:

我可以继续为所有 DR 类型(很多)执行此操作,但我仍然不明白这对我有什么帮助。我已经在 Wikibooks 和 F# Foundations 中读到过它,但我的脑海中还没有出现什么问题。

更新 2

所以,我知道我可以执行以下操作:

但是当消息进入 IMessageProcessor 时,就可以选择它是什么类型的消息,然后调用适当的函数。以上只是附加代码,至少这是理解它的方式,所以我真的在这里错过了这一点......但我没有看到它。

0 投票
13 回答
60862 浏览

javascript - 如何检测浏览器的协议处理程序?

我创建了一个自定义 URL 协议处理程序。

http://

mailto://

custom://

我已经注册了一个 WinForms 应用程序来做出相应的响应。这一切都很好。

但我希望能够优雅地处理用户尚未安装自定义 URL 协议处理程序的情况。

为了能够做到这一点,我需要能够检测浏览器的注册协议处理程序,我会假设来自 JavaScript。但我一直无法找到一种方法来轮询信息。我希望找到解决这个问题的方法。

感谢您可以分享的任何想法。