我正在研究客戶端需要向服務器發送一些命令的Clojure應用程序。這些會以相當大的數量發生,所以我希望它在處理和線上串行尺寸方面都是相當高效的。在Clojure/Java中將客戶端命令傳輸到服務器
在Clojure中做這件事的最好方法是什麼?
目前,我在想:
- 創建一個簡單的標準表示如{:命令-ID 1,:PARAMS [1 2 3 「ABC」]}
- 使用一些效率的Java庫如Kryo連載,並配置它瞭解的Clojure數據類型
- 黑客一起適當的客戶機/服務器使用Java NIO庫實現使用TCP/IP傳輸的套接字實現
但是,這似乎有點複雜,我相信其他人已經想出了更智能的方法。任何想法/建議非常感謝!
有趣的想法!如果你能弄清楚如何將輸入限制爲已知安全的命令,那麼對於一個客戶端可能會受到影響但可能工作得很好的互聯網通道可能有點冒險 – mikera 2010-06-26 16:56:29
對於手動解決方案,請記住重新綁定' * read-eval *'爲'false'!儘管爲此解決方案可能是一個糟糕的主意, clj-sandbox可能會更健壯*和*更高效(如果您知道如何改進它,您可以通過分享您的想法來爲Clojure社區提供卓越的服務!)。 – 2010-06-26 20:23:42
好吧,如果你過濾掉所有的函數調用並且只保留數據,那麼你只剩下一個Clojure版本的JSON。酷龍?主要區別可能是支持關鍵字,比率和正則表達式。 – 2010-06-28 14:05:40