是否可以实现Dart命令行WebSocket客户端,该客户端支持与服务器的双向交换?

是否可以实现Dart命令行WebSocket客户端,该客户端支持与服务器的双向交换?,dart,Dart,我正在尝试创建具有两个目标的命令行Dart应用程序: 当我开发将在嵌入式Jetty服务器上运行的基于Java的web服务时,它们可以在调试模式下从IntelliJ(IJ)或Dart编辑器(DE)轻松启动,而不需要使用Dartium浏览器。这将支持TDD工作流 通过合并Dart单元测试,每个应用程序都可以成为一个可以在Jenkins下运行的web服务测试程序 似乎在源文件中导入dart:html会触发IJ和DE中的期望,即html页面是dart main()的入口点。另外(在IJ中),上下文菜

我正在尝试创建具有两个目标的命令行Dart应用程序:

  • 当我开发将在嵌入式Jetty服务器上运行的基于Java的web服务时,它们可以在调试模式下从IntelliJ(IJ)或Dart编辑器(DE)轻松启动,而不需要使用Dartium浏览器。这将支持TDD工作流

  • 通过合并Dart单元测试,每个应用程序都可以成为一个可以在Jenkins下运行的web服务测试程序


似乎在源文件中导入dart:html会触发IJ和DE中的期望,即html页面是dart main()的入口点。另外(在IJ中),上下文菜单中的Select/Run/Debug项不是为导入Dart:html的Dart源文件添加的,而是为没有此导入语句的我的unittest源文件添加的。这要求我的Dartium浏览器参与进来,从而使工作流程复杂化。我已经使用本节所示的方法成功地创建了一个简单的echo-WS脚本,但是这个示例只侦听消息,不发送消息。事实上,io:WebSocket的API没有其对应的html:WebSocket的“send”方法。io:WebSocket似乎比它的“html”对应项弱得多。因此,对于我的用例(或试图编写基于Dart的中间层服务器的人),这可以做到吗?如何做到。据我记忆所及,在
dart:io
中,它只是
add
而不是
send
。我没有感觉到
io:WebSocket
的功能更少



你必须点击
方法
下面的
添加
链接(深度链接在api.dartlang.org中还不能正常工作)。

我在Dart中对服务器端WebSocket编程做了大量的工作,对我来说,它似乎功能相当全面。最近,我一直在使用with,它删除了很多样板文件,使它变得非常简单…

@gz它成功了。谢谢我最初的印象是没有看到send*方法,但我以前没有使用过io:WebSocket,所以我得到了纠正。这两个类是否能从它们的API对齐中获益?在
dart:html
dart:io
之间存在一些这样的差异
dart:html
重用浏览器API中的名称,
dart:io
使用dart团队认为合适的名称。有一个
http
包,它在客户机和服务器之间实现了某种统一,并且还讨论了这样一个文件访问包。问题在于,一个统一的API最多只能提供能力最低的实现所支持的内容,而限制因素目前是浏览器中的API。我不确定为一组有限的功能提供统一的API是否会增加很多价值。这非常有用,并回答了我遇到的一个更深层次的问题。