首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Clojure/Java将命令从客户端传输到服务器

用Clojure/Java将命令从客户端传输到服务器
EN

Stack Overflow用户
提问于 2010-06-26 14:47:28
回答 3查看 646关注 0票数 2

我正在开发Clojure应用程序,客户端需要向服务器发送一些命令。这些将发生在相当大的数量,所以我希望它是合理的效率,无论是在处理和过线串行化的大小。

在Clojure中,最好的方法是什么?

目前我在想:

  • 创建一个简单的标准表示,例如{:命令-id 1,:params 1 2 3 "abc"}
  • 使用一些高效的Java库(如克里奥 )序列化,并配置它以理解Clojure数据类型
  • 使用Java库将适当的客户机/服务器套接字实现连接在一起,以便在TCP/IP上传输

然而,这似乎有点令人费解,我相信其他人已经想出了更聪明的方法。任何想法/建议都非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-26 16:28:35

如果参数不是太大而且源是可信的,为什么不将s-表达式发回和填充,

代码语言:javascript
复制
(eval (read-string "(println \"Hello World\")"))

Clojure是LISP方言代码,是数据。

编辑:

为了安全起见,在读取字符串之后,可以根据一组有效的命令检查该命令,

代码语言:javascript
复制
(contains? #{'println} 
           (first (read-string "(println \"Hello World\")")))

或者您可以使用为此而设计的库,例如

http://github.com/Licenser/clj-sandbox

票数 4
EN

Stack Overflow用户

发布于 2010-06-26 15:57:38

谷歌的协议缓冲器呢?有一个库用于处理Clojure中的它们:克洛布。我记得Freenode #clojure上有人正在对一个严肃的任务(处理大量的Twitter数据)进行Haskell与OCaml的比较;s/他一直在对库进行大量的赞扬。

更新:这里是我所想到的#clojure对话中的相关话语。

票数 2
EN

Stack Overflow用户

发布于 2010-06-26 15:28:34

我的答案并不是Clojure特有的,但我倾向于更喜欢字符串而不是http -它是合理的标准和合理的效率。

几乎每种语言都有用于JSON的库,除非数据量很大,否则我会使用它(以及简单的标准命令格式)。

我的经验是,您越不需要修改专门的格式、套接字和协议,就越有可能在海滩上度过周末:)。

我会在http上保留任何比JSON更复杂的内容,直到基准测试显示需要其他东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3124262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档