问题标签 [custom-protocol]

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 投票
2 回答
200 浏览

networking - 在假设它丢失之前,我应该重新传输数据包多少次?

我一直在创建一个类似于 TCP 的可靠网络协议,并且想知道一个数据包上的重新传输阈值的良好默认值应该是多少(在假设连接断开之前我重新发送数据包的次数)。如何在网络上找到最佳重试次数?还; 并非所有网络都具有相同的可靠性,所以我想这个“最佳”值会因网络而异。有没有计算最佳重试次数的好方法?还; 在重试之前我应该​​等待多少毫秒?

0 投票
1 回答
223 浏览

serial-port - 串口设备协议安全实践:识别、轮询

我正在创建一个通过串行 COM 端口向 Windows PC 发送数据的简单设备。

我希望该软件能够扫描可用的 COM 端口,直到它识别出该设备。问题是,如果 PC 尝试与我以外的设备启动握手,它可能会解释命令 [当然是错误的]。

我看到的唯一解决方案是让我的设备定期广播某种标识符,可能每秒大约 5 次,因此应用程序只需要侦听该标识符,而不是冒损坏也连接到 COM 端口的另一个设备的风险。当应用程序加载时,它会监听每个可用的 COM 端口,直到设备被识别。这听起来合理吗?

谢谢

0 投票
2 回答
231 浏览

c++ - 将桌面应用程序与网站连接起来

我使用 Qt/C++ 制作了一个应用程序,它每 5-7 秒读取一些值并将它们发送到网站。

我的方法很简单。我只是在阅读我想要发送的值,然后我向网站发出 HTTP POST。我还将用户名和密码发送到网站。

问题是我无法确定请求是否成功。我的意思是,如果我发送请求并且服务器得到它,我将始终获得 HTTP:200。例如,如果密码不正确,则无法知道。这是 HTTP 的工作方式。

现在我想我需要某种协议来处理应用程序和网站之间的通信。

问题是使用什么协议?

0 投票
7 回答
108262 浏览

google-chrome-extension - chrome中的自定义协议处理程序

如何在 chrome 中设置自定义协议处理程序?就像是:

我的协议://测试文件

我需要它来向http://example.com?query=testfile发送请求,然后将 httpresponse 发送到我的扩展程序。

0 投票
1 回答
148 浏览

http - 您可以发布到用户定义的协议 URL 吗?

浏览器使您能够定义用户定义的协议处理程序(例如,moomoo://someplace.com?foo=1)。

哪些浏览器使您能够 POST 到用户定义的协议?

0 投票
1 回答
377 浏览

ios - 通过手工协议发送视频

我将开发一个应用程序,其主要任务是将从设备摄像头捕获的视频帧发送到服务器。服务器使用 TCP 协议。我听说 Apple 限制开发人员使用任何视频流协议,HTTP 直播流除外。这些信息是否正确?在应用商店中批准我的应用时会出现任何问题吗?

0 投票
1 回答
1398 浏览

activemq - 踩住 ActiveMQ 问题

我是 Stomp ActiveMQ 的新手。我想从 android 客户端创建登录,但我不知道如何使用 ActiveMq。我已经安装了活动 mq,配置了 stomp 并运行了 stompexample。1.如果我在activemq.xml中添加以下行,从命令行运行activemq时会出错:

  1. 有人可以解释一下 tx1 和 tx2 是什么吗?有没有办法在队列中向特定客户端发送消息?如何?

    connection.connect("系统", "经理");

    /li>
  2. 有人可以告诉我如何创建一个应用程序,该应用程序在队列上发送包含用户名、密码的文本,并在注册成功时收到答案?

0 投票
2 回答
4311 浏览

java - 使用状态模式设计在 Java 中实现通信协议

如果在其他地方回答了这个问题,我们深表歉意;找不到足够的信息来说服自己最好的方法来做到这一点。我也意识到这是一个没有代码的冗长解释,但请告诉我是否应该编写一些示例代码来帮助演示我在做什么。

基本上:

  • 使用 System.in/out 在 Java 中实现通信协议
  • 当前的方法是实现一种状态模式,其中在上下文类中的 System.in 上实例化 Scanner
  • 具体状态调用上下文方法从 Scanner 读取,然后根据 Scanner 返回的值适当地执行操作/转换状态

我使用状态模式的初衷是在从 System.in 解析这样的序列时简化代码(不要询问语法,这是我必须使用的东西):

  • 命令名称=X
  • 标题
  • 标题信息行
  • 内容
  • 命令内容行
  • 结束内容
  • 结束命令

我通常为我期望收到的每种类型的命令定义一个具体的状态。以上述序列为例,我将有一个类似于 {WAITING_FOR_COMMAND, COMMAND_RECEIVED, PARSING_HEADER, PARSING_CONTENTS, PARSING_DONE, COMMAND_PROCESSED} 的状态集。我最初会在 WAITING_FOR_COMMAND,然后当收到“COMMAND NAME=X”时,我会转换到 COMMAND_RECEIVED,然后当“HEADER”进来时,我会转换到 PARSING_HEADER,等等。这种设计使得遍历所有边缘情况协议更容易,并且还使代码在协议被调整时易于更新/维护。显然比大量的 switch 语句和重复的边界检查要好得多。

我遇到的问题是,当我充实我的具体状态行为时,我发现自己在上下文类中声明了越来越多的状态变量,并且知道这可能很糟糕,因为我正在创建非常暴露的接口和非常高的联系上下文和具体的状态类。该协议中的命令序列可以任意长,我需要保存命令序列中每个项目传递的信息,直到命令序列完成。

以上面的命令序列为例,在“COMMAND ID=X”之后,我想在收到“ENDCOMMAND”并完全处理命令后保存值X以备将来使用。在“HEADER”之后,我想在收到“ENDCOMMAND”后保存标题信息以备将来使用,以供实际处理命令时使用。等等等等。现在只需将 commandId 和标头状态变量添加到上下文类中就可以了,但对我来说似乎并不干净或封装得很好。

有没有人对他们如何解决这个问题有任何高层次的建议?有没有更好的使用状态设计模式呢?

只是要注意一些我一直在玩的想法:

  • 为每种类型的命令序列定义状态上下文,并在从 System.in 接收到相关命令时调用适当的上下文;这看起来几乎就像拥有巨大的开关块一样混乱,并且似乎过度复杂化了设计
  • 设计支持复合 FSM 的成熟 FSM 架构,其中每个命令序列在总体 FSM 中占据其自己的 FSM;这对我来说似乎有点矫枉过正
  • 为每个命令序列类型创建具有各种子类的 ProtocolCommand 对象;我可以在转换时将这些传递到每个状态,并在我进行过程中逐渐建立它们……但这会使状态接口变得混乱,并迫使所有状态摄取一个他们不一定会使用的参数

非常感谢!抱歉,这太冗长了,如果我能澄清什么,请告诉我。

0 投票
1 回答
517 浏览

c# - 不会“窃取”焦点的自定义协议处理程序

有一个 WinRT 应用程序可以访问一些系统信息。网上有一些资源告诉我们可以使用自定义协议(WinRT 应用程序启动该协议,然后启动桌面应用程序并做一些工作)。自定义协议处理程序是 c# 桌面应用程序(“输出类型”设置为“Windows Applicatoin”的控制台应用程序,因为我们不需要任何接口)。

所以,问题是:当 WinRT 应用程序启动自定义协议时,桌面应用程序启动并且所有东西都正常工作,但是在桌面启动主要 WinRT 应用程序的那一刻,桌面应用程序工作所需的时间被隐藏起来。

是否有一些解决方案,允许以静默模式启动桌面应用程序(不知道如何放置,可能是“背景”),以便 WinRT 一直显示自己。

0 投票
0 回答
274 浏览

objective-c - Mac 自定义协议在某些机器上失败

Mac 操作系统 10.8.3。当单击浏览器中的链接时,这个简单的应用程序从自定义协议运行,例如 run 。

使用 xCode 编译 .app,未签名。

适用于大多数机器,但不适用于某些机器。一个不工作的是 Mac OS 10.8.2 与关守关闭。它给出了错误“由于奇怪的原因(13)失败”。我想这与许可或安全有关。我尝试将 Contents/MacOS/Binary chmoding 到 777,但还是一样。

我是否必须签署 Apple 开发证书才能使其工作,或者在代码或 plist 中执行其他操作以使其在所有机器上工作?

列表

AppDelegate.m