高度可靠的交易/信号复制器(意识形态的讨论和发展) - 页 6

 

一个简单的交换方案:信号发生器在服务器上放置一个文件,包含其所有未结订单和头寸,就像在终端一样。如果至少有一个订单或位置发生了变化,它就会放置一个新文件。在这种情况下,服务器发送一个新版本的文件(或一个包含文件全部内容的消息),而客户端回复说他已经收到了(服务器应该包含连接的客户端列表)。服务器也会在任何时候将文件发送给客户端。

如果客户端被赶上或错过了一个订单,它可以通过读取服务器的终端文件轻松地恢复自己。如果有一个逐个命令的交换,可能会有许多崩溃和模糊不清的地方。客户端可以重新同步以进行诊断,例如,如果没有变化,每X分钟一次。

这个方案的交通量并不高。所以你甚至可以使用SSL或https。

有3种类型的信息:给予、接收、文件本身。

 
Avals:

一个简单的交换方案:信号发生器在服务器上放置一个文件,包含其所有未结订单和头寸,就像在终端一样。如果至少有一个订单或位置发生了变化,它就会放置一个新文件。在这种情况下,服务器将发送一个新版本的文件(或一个包含该文件全部内容的消息)。它还可以根据客户的要求随时发送这个文件。

如果客户端被赶上或错过了一个订单,它可以通过读取服务器的终端文件轻松地恢复自己。如果有一个逐个命令的交换,可能会有许多崩溃和模糊不清的地方。客户端可以重新同步以进行诊断,例如,如果没有变化,每X分钟一次。

这个方案的交通量并不高。因此,你甚至可以使用SSL或https。

该计划是无用的,因为带有交易信号的文件很快就会失去其相关性,因为交易必须及时执行。最快的选择是客户保持与服务器套接字的持续连接,等待交易信号的出现。与系统性请求不同,永久连接不会浪费流量,其可靠性相当高。

正如我之前所说,也不需要任何命令。只要有交易信号出现,服务器就会将其作为一个带有终止符号"/n "的单行发送至客户,并等待下一个信号。客户端不需要向服务器发送任何东西,它只接收信号。

根本不需要SSL和https。首先,服务器的所有者将不得不注册一个域名和购买一个证书,然后他必须延长所有这些东西也不是免费的,以便与这些协议一起工作。其次,这些协议是用于数据加密 的,拦截TCP流中的信息无法解密。如果服务器有很多客户,那么它的负载将是巨大的,因为加密不是halam balam,而是将大整数提高到更高次幂的modulo操作。

 
Reshetov:

该计划是无用的,因为交易信号文件很快就失去了意义,因为需要按时进行交易。最快的选择是客户保持与服务器套接字的持续连接,等待交易信号的出现。与系统性请求不同,永久连接不会浪费流量,而且其可靠性相当高。

正如我之前所说,客户端也不需要任何命令。当一个交易信号出现时,服务器将其作为一个单行发送至客户端,并等待下一个信号。客户端不需要向服务器发送任何东西,只需要接收信号。


没有任何延迟,因为它在信号出现后立即被发送到所有客户。

逐个命令的连接当然可以节省流量,但可靠性会很差。客户应该能够获得所有的订单(例如,未决订单或订单修改),甚至是他因某种原因错过的订单。

 
Avals:


没有任何延迟,因为在信号出现后,信息会立即发送到所有客户。

逐个团队,当然可以节省流量,但可靠性会很差。客户端应该能够检索到所有的订单(例如待处理的订单,或订单的修改),甚至是那些由于某种原因错过的订单。

好吧,做一个驼背。只有谁会做这种无稽之谈--这不是我的问题。

我的工作是以最小的负荷和流量提供最好的选择,你有权利拒绝。

 
Reshetov:

根本不需要SSL和https。首先,服务器所有者必须注册一个域名并购买一个证书,然后永久更新也不是免费的,以与此类协议一起工作。其次,这些用于数据加密的协议,在TCP流中拦截信息是无法解密的。如果服务器有很多客户,那么它的负载将是巨大的,因为加密不是halam balam,而是将大整数提高到更高次幂的modulo操作。


但所有现有的未经认证的服务器信号在几个小时内就会被破解。虽然加密可能是不必要的))
 
Avals:

但所有现有的没有认证的服务器信号在几个小时内就被破解了。不过,加密可能是不必要的))。

1.不是几小时,而是几毫秒

2)谁他妈的需要你的信号被别人打开?关于Elusive Joe的轶事。

 
Reshetov:

好吧,把它变成一个驼峰。但谁会做这种无聊的事,已经不是我的问题了。

我的工作是在最小的负荷和流量下提供最好的选择,你有权利拒绝。

如果客户失去了连接,或重新启动,同时通过任何挂单或订单修改,如何用telnet命令交换来解决?我不知道,也许你可以--这就是我问的原因。
 
Reshetov:

1.不是几小时,是几毫秒。

2)谁他妈的需要你的信号被掩盖?关于Elusive Joe的轶事。


我不在乎,但那些为了钱而出售信号的人就不高兴了))但如果它在这个项目 中不重要--没问题,不需要保护。
 
Avals:
如果客户失去了连接,或重新启动,在这期间,一些挂单或修改的订单通过了,如何用telnet命令交换来解决?我不知道,也许你可以--这就是我问的原因。

我已经告诉你,你不需要telnet命令,但你又在胡说八道。

你应该复制这些文件并使用SendFTP() 把它们上传到一些廉价的主机上。并让客户在失去联系时通过FTP读取文件的创建时间。

 
Reshetov:

我已经告诉你,你不需要telnet命令,但你又在胡说八道。

你应该复制这些文件并使用SendFTP()把它们上传到一些廉价的主机上。并让客户通过FTP读取文件,其创建时间是在连接之外的。


也就是说,这不是你的))。

Reshetov:

TCP/IP协议上的插座。你可以以文本形式传输信号,每个信号只有一行,如 "EURUSD Buy 1.0/n",如通过Telnet,因为这是最原始的版本,不需要复杂的交换程序,如http或ftp协议的最小解析。

你又在胡说八道了--当你可以用一个人做的时候,用另一个人重复))。既然有一个文件 就足够了,为什么还要费力地存储文件 呢--最后一个文件是所有订单和仓位的当前状态。要把服务器的需求(当主账户有变化时)和客户的需求(当他有问题或不一致时)的交换结合起来,而不是想出额外的拐杖。你可以不按服务器的要求发送整个订单文件,而只发送有变化的内容,这将是你的 "命令交换 "版本。