簡體   English   中英

這個Scala Perl / Python架構是否有意義

[英]Does this Scala Perl/Python architecture make sense

在另一個問題中,我為某種目的要求“最好的”語言。 實現這個目標有點太多了,我簡化了我的想法:)但是有非常有用的語言提示。 所以我決定在桌面應用程序上使用Scala,並考慮在Web服務器上使用Perl和Python。

我想編寫類似異步聊天(有點像電子郵件)的東西。 所以你開始你的程序選擇你的名字,並添加一個他的唯一ID的朋友。 然后你可以給他寫一個簡單的消息,當你的朋友啟動他的電腦時,啟動他收到郵件的“chat.exe”(需要互聯網)並且能夠回答。 沒有特殊功能,笑臉或文字格式,只是為了學習目的。

我的概念是:使用Scala作為“chat.exe”(或者只是“chat.jar”可能嗎?),它通過SOCKET與處理請求的Perl / Python框架進行通信。 所以你輸入“Hello there”並點擊發送。 此消息通過SOCKET傳輸到Perl / Python腳本,該腳本讀取請求將此消息放入MySQL數據庫。 在另一方面,您朋友的chat.exe檢查新消息,如果有消息,則Perl / Python腳本會傳輸消息。 也通過SOCKET。

您認為這可行嗎? SOCKET適合適合嗎? 或者也許是REST? 但我認為對於REST-Requests,您必須使用URI(http://example.com/newmessage/user2/user3/Hi_how_are_you)。 這看起來非常不安全。

期待您的評論!

祝你今天愉快,

庫爾特

如果您問我,我認為Scala最適合服務器端。 Scala在JVM上運行,Java在服務器端有一個非常大的生態系統。 你有各種各樣的應用程序服務器(tomcat,jetty,glassfish等)。

聊天是演員的經典用例。 我認為Akka可以在這個領域激勵你。

您可以使用精美的Scala Web框架,例如Lift。 您甚至可以進行基於網絡的聊天。 這是使用彗星(服務器推送)的聊天應用程序的示例:

http://demo.liftweb.net/chat

關於REST:如果你覺得它不安全那么

  1. 使用HTTPS與服務器通信
  2. 在您的示例中,您的意圖是將消息放入服務器(至少這是我的理解),因此很可能您希望使用PUT請求,在這種情況下,消息文本將位於POST請求正文中。

使用Scala作為“chat.exe”(或者只是“chat.jar”可能嗎?)

步驟1.圖出來。 實際寫一些東西,看看可以做什么。

它通過SOCKET與處理請求的Perl / Python框架進行通信。

沒意義。 所有的Internet通信都是通過套接字完成的。 忽略這句話,您不會失去任何意義。

此消息通過SOCKET傳輸到Perl / Python腳本,該腳本讀取請求將此消息放入MySQL數據庫。

一些有用的信息。 然而,套接字不言而喻。

在另一方面,您朋友的chat.exe檢查新消息,如果有消息,則Perl / Python腳本會傳輸消息。 也通過SOCKET。

對。 同樣,套接字並不意味着什么。

在套接字之上,有數十種協議。 FTP,Telnet,HTTP,SMTP等,等等。

步驟2是弄清楚您要使用哪種協議。 順便說一句,REST是HTTP的一種特殊用途。 在關閉它們之前,您應該非常仔細地仔細研究HTTP和REST。

這看起來非常不安全

不清楚你為什么這么說。 我只能猜測您對HTTP安全功能一無所知。


懶惰的程序員可能會這樣做。

  1. 安裝Python,Django,MySQL-Python和Piston。

  2. 定義Django模型,配置默認值,以便將模型公開為安全的RESTful服務集。

服務器端消息GET,POST,PUT和DELETE都由Django,Piston和Django ORM層提供。 身份驗證可以是各種機制中的任何一種。 我是HTTP摘要認證的忠實擁護者。

要實現類似的東西,你需要通過一個MQ系統,比如ActiveMQ,而不是使用普通的套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM