问题标签 [client-server]

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 回答
206 浏览

javascript - Metalanaguage 从 MVC 描述模型以生成相同的客户端和服务器端代码

我正在寻找一种强大的元语言来描述我打算在离线模式(google-gears + javascript)和服务器端 sqlite +(php/ruby/java 等)下使用的应用程序的行为,并寻找一种好的格式来描述模型的行为可以很容易地转换为目标语言。我完全偏离轨道了吗,还有更好的方法吗?

0 投票
5 回答
3057 浏览

database - 有人对 GUI 销售点系统有数据库、编程语言/框架建议吗?

我们公司有一个带有许多附加功能的销售点系统,例如订购和接收功能、销售和订单历史记录等。我们的主要问题是该系统从一开始就没有正确设计,因此修复和修复需要很长时间处理来自我们客户的请求。此外,由于数据库连接的多用户许可费用等,我们正在使用的当前技术(Progress 数据库,Progress 4GL 语言)给我们的客户带来了相当多的许可费用。

经过大量讨论后,看起来我们可能会从头开始(同时至少暂时保持当前产品)。我们正在寻找几件事:

  1. 使用漂亮的 GUI 前端创建系统(目前是 CHUI,并且应用程序的构建方式不支持我们重新设计前端...没有分层或分离业务逻辑和 GUI...不寒而栗)。

  2. 创建具有模块化不同功能的能力的系统,因此产品不必包含所有功能。这将降低我们当前需要基本功能和较低价格标签的客户的成本。这些花里胡哨的东西可供那些想要它们的人使用。

  3. 使用适当的设计模式使产品易于随时添加或更改任何部分(即更改数据库或更改前端,而无需重写应用程序或大部分应用程序)。这是今天的一个问题,因为 Progress 4GL 代码是直接针对数据库编译的。数据库中的小改动需要大量的代码重新编译。

我们的新系统将基于 Linux,客户端应用程序可能会从一个或多个 Windows 框提供功能。

所以我正在寻找的是关于有人可能会为这类产品推荐哪种数据库和/或框架或编程语言的任何建议。任何在该领域有经验的人都可以为我们指明正确的方向,甚至对要避免的事情有一些想法。我们已经考虑过 .NET 和 SQL Express(我们不需要企业级数据库),但这会将我们限制在 Windows 上(据我所知)。我听说过用于在 Linux 环境中编写 .NET 代码的 Mono,但我对它还不太了解。我们还考虑了基于 Java 和 MySql 的实现。

总而言之,我们希望做到以下几点:

  1. 降低我们将用于开发产品的技术的许可成本(甲骨文,哎呀!MySQL,很好。)

  2. 提供易于维护和支持的解决方案。

  3. 具有能够通过 CHUI 前端在“旧”硬件上运行的组件的解决方案。(我们的一些客户拥有 40 多个终端,这将是大量现金才能转换为 PC)。

建议将不胜感激。

谢谢

[更新] 我应该指出,我们目前正在执行总成本分析。这个问题旨在为我们提供几个“受过教育”的选项,以供研究以纳入或分析。任何可以分享有关客户端/服务器设置的经验/建议的人都将不胜感激(不仅仅是那些有销售点系统经验的人......这只是一个奖励)。

[更新]

对于任何感兴趣的人,我们最终选择了 Microsoft Dynamics NAV、LS Retail(一个用于销售点和其他各种东西的插件),然后在此基础上做了一些(目前正在研究)定制工作。这种设置为我们提供了一个额外的好处,即拥有一个我们当前系统所缺乏的完全集成的 g/l 系统。

0 投票
4 回答
435 浏览

c# - 您将如何使用 .Net 2.0 通知客户有关服务器上更改的数据的信息?

想象一个 WinForms 客户端应用程序,它显示相当复杂的计算数据,该数据是通过 HTTPChannel 使用 .Net Remoting 从服务器应用程序获取的。
由于客户端应用程序可能运行一整个工作日,我需要一种方法来通知客户端新数据可用,以便用户能够在需要时重新加载数据。
目前我正在使用远程 .Net 事件,将事件序列化到客户端,然后在客户端重新抛出事件。

我对这个设置不太满意,并计划重新实现它。
对我来说重要的是:

  • 基于 .Net 2.0 的技术
  • 易于使用
  • 低复杂度
  • 足够强大,可以在服务器或客户端重新启动后仍然有效

当仅限于 .Net 2.0 时,您将如何实现这样的功能?你会使用什么技术/库?
我正在寻找如何解决问题的灵感。

编辑:

客户端和服务器存在于同一个组织中,通常是 LAN,可能是 WAN/VPN 情况。
这种机制应该只让客户端知道有新数据可用。我想继续远程处理以将实际数据发送给客户端,因为它运行良好。MSMQ 带有 windows,不是吗?所以使用它应该没问题,但我愿意接受任何替代方案。

0 投票
5 回答
6281 浏览

c# - 客户端应用程序在 C# 中查找本地网络上的服务器的最佳方法是什么?

客户端使用 GenuineChannels 连接到服务器(我们正在考虑切换到 DotNetRemoting)。我所说的查找是获取要连接的服务器的 IP 和端口号。

似乎蛮力的方法是尝试网络上的每个 IP 尝试活动端口(甚至不确定这是否可能),但必须有更好的方法。

0 投票
1 回答
2153 浏览

c# - db4o 客户端/服务器似乎一次只能处理一个查询?

我们正在评估 db4o(来自http://www.db4o.com的 OO-DBMS )。我们已经为客户端/服务器模式进行了性能测试,我们启动了一个服务器,然后同时使用多个客户端对其进行锤击。似乎服务器一次只能处理一个客户端的查询。

我们是否错过了允许这种情况的某个配置开关?服务器实现如下。客户端对每个操作进行连接、查询(只读)和断开连接,并且操作从客户端进程中的多个工作线程中一个接一个地运行。如果我们在同一台服务器上启动一个客户端进程和一个工作人员,我们会看到相同的行为。

有什么建议么?

编辑:我们现在已经发现并尝试了惰性和快照查询模式,尽管这缓解了阻塞服务器问题(部分),但当我们的客户端(我们运行 40 个并发测试客户端等待 1在服务器上发出随机操作请求之前-300ms)锤子。似乎有来自 LINQ 提供程序和 IO 内部的异常:-(

0 投票
3 回答
3565 浏览

c# - Telnet 服务器如何与客户端通信?

我想编写一个 C# 应用程序,它连接到 telnet 服务器并与服务器通信。我想知道 telnet 服务器如何向客户端发送信息。我已经查看(略读)了Telnet RFC并查看了从服务器传入的数据包,但仍然有点困惑。谁能给我一个例子,服务器如何在 telnet 客户端中移动光标以及它如何改变字符的颜色?(一个例子将不胜感激)

更新一

以下是一些额外的 VT100 资源:

  1. ANSI/VT100 终端控制
  2. vt100_codes_news.txt

更新二

经过大量研究和时间,我在这里发现了:Telnet Programming with C#

0 投票
4 回答
323 浏览

c# - 从客户端到服务器的计划数据备份

谁能指出哪些技术最适合将数据从客户端备份到服务器的应用程序?

客户端应选择要备份的文件夹并将备份安排到服务器

我也对您将如何开始开发/设计感兴趣,您将如何在尽可能短的时间内构建应用程序的基本版本。

0 投票
4 回答
5090 浏览

c++ - (C++) 游戏服务器,(Flash) 客户端

我有兴趣将我的第一个使用 Flash 作为客户端的在线游戏放在一起,并用 C++ 编写一个保留实际游戏状态的后端应用程序。

在使用 SDL、SFML、Allegro 等之前,我用 C++ 完成了很多游戏,但从未使用过网络库。我只是对一些有用的方向感兴趣,哪些库最适合实际服务器没有任何图形显示(或不需要但可以有)的游戏服务器。老实说,我认为答案是任意的,一旦我掌握了套接字的窍门,来回发送数据就会变得轻而易举……但首先问起来是无济于事的。

我在 flash 或 as3 方面的经验很少,但喜欢能够通过浏览器访问游戏的想法 - 学习 flash 显然是一个我必须克服的难题,但我的主要兴趣再次是关于库的任何提示,或资源,或适合通过套接字或任何最有效的方法发送/接收数据的教程。

我已经阅读了 TCP/UDP 之间的争论,所以我不想在这里发动这样的战争;请提供一般有用的建议 - 我只是在寻找一些简单的东西来让我启动和运行:-p

作为旁注,我选择 C++ 的原因是因为玩家实际上是具有微型虚拟机的机器人,并且一切都将在服务器上运行,因此随着玩家数量的增加,将需要模拟每个虚拟机:-p

更新:

游戏世界旨在实现实时,但玩家的交互并非必须如此。游戏的基础是您编写小机器人,这些机器人在一个持久的世界中进行交互,并且每天/每周都有目标和挑战来获得积分。

我在想缓冲显示数据是可能的,因为玩家不需要实时视觉,因为他们无法直接控制他们的机器人。服务器将为每个连接缓冲 10 秒左右的数据,然后一次性将其发送出去 - 这样,当数据在客户端播放时,服务器正忙于缓冲更多数据。

玩家与服务器的一般交互将是上传新代码和获取统计数据,还可能有其他一次性命令来移动机器人或将其重置到起始位置。任何远程控制都是通过通信通道完成的,因此会被缓冲区延迟。这很容易解释为持久世界位于火星(行星)之类的某个地方,并且信号需要一段时间来来回回。

我正计划建立一个“实验室”,您可以在其中设置机器人并在客户端上实时测试它们,这与实际的游戏世界无关,因此不需要任何网络 - 尽管我不喜欢用两种语言编写虚拟机:(

我对 C++ 非常熟悉,并且已经有了一些持久化世界的工作原型——在网络方面我只是一个完全的新手,所以我认为最好先获得建议。

0 投票
2 回答
432 浏览

.net - 客户端使用 WCF 将数据上传到中央服务器,如何验证数据是否已上传?

少于 10 台客户端计算机,每台都有自己的安装程序,必须将数据上传到中央服务器。

客户端数据库如下所示:

tblSales - rowGuid - randomNumber

中央服务器数据库:

  • 行指南
  • 随机数
  • 插入日期

我计划使用 WCF 将文件发送到中央服务器。

如何验证行已插入服务器?我有哪些验证选项?

我可以返回插入的行数并将其与发送的行数进行比较,但是还有其他更强大的方法吗?

0 投票
5 回答
10403 浏览

python - 我应该如何对客户端服务器应用程序进行压力测试/负载测试?

我开发了一个客户端-服务器风格、基于数据库的系统,我需要设计一种方法来对系统进行压力/负载测试。客户不可避免地想知道这样的事情:

• 一台服务器可以支持多少客户端?
• 服务器可以支持多少并发搜索?
• 我们可以在数据库中存储多少数据?
• ETC。

所有这些问题的关键是响应时间。我们需要能够测量响应时间和性能如何随着新负载的引入而下降,以便我们可以生成某种漂亮的图表,我们可以将其扔给客户,让他们了解在给定的情况下期望什么样的性能硬件配置。

现在,我们只是伸出手指,根据我们从经验中对系统的了解做出有根据的猜测。随着产品被置于更苛刻的条件下,这被证明不足以满足我们未来的需求。

我的任务是设计一种以有意义的方式获得此类答案的方法。我意识到这不是任何人都可以明确回答的问题,但我正在寻找有关人们如何在自己的系统上进行此类工作的建议。

需要注意的一点是,我们可以通过 Python 语言(由 SWIG 提供)完全访问我们的客户端 API,这比 C++ 更容易用于此类工作。

所以我们开始了,我把这个扔到地板上:真的很想看看你们能想出什么主意!