在另一个问题中,我为某种目的要求“最好的”语言。实现这个目标有点太多了,我简化了我的想法:)但是有非常有用的语言提示。所以我决定在桌面应用程序上使用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)。这看起来非常不安全。
期待您的评论!
度过愉快的一天,
库尔特
答案 0 :(得分:1)
如果你问我,我认为Scala最适合服务器端。 Scala在JVM上运行,Java在服务器端有一个非常大的生态系统。你有各种各样的应用程序服务器(tomcat,jetty,glassfish等)。
聊天是演员的经典用例。我认为Akka可以激励你在这个领域。
您可以使用精彩的Scala Web框架,例如Lift。您甚至可以进行基于网络的聊天。以下是使用comet(服务器推送)的聊天应用程序示例:
关于REST:如果您觉得它不安全,那么
答案 1 :(得分:1)
将Scala用于“chat.exe”(或者只是“chat.jar”?)
步骤1.想出来。实际上写一些东西,看看你能建立什么。
通过SOCKET与处理请求的Perl / Python Framework进行通信。
没有意义。所有互联网通信都通过套接字完成。保留这句话,你不会失去任何意义。
此消息通过SOCKET传输到Perl / Python脚本,该脚本读取请求将此消息放入MySQL数据库。
一些有用的信息。然而,套接字不言而喻。
在另一方面,您朋友的chat.exe检查新消息,如果有消息,则Perl / Python脚本会传输消息。也可以通过SOCKET。
右。套接字再次没有多大意义。
在套接字之上有许多协议。 FTP,Telnet,HTTP,SMTP等等。
步骤2是确定您要使用的协议。顺便说一句,REST是HTTP的一种特殊用途。在解雇它们之前,你应该真正地,非常仔细地看待HTTP和REST。
这看起来非常不安全
不清楚你为什么这么说。我只能猜测你不了解HTTP安全功能。
一个懒惰的程序员可能会这样做。
安装Python,Django,MySQL-Python和Piston。
定义Django模型,配置默认值,以便将模型公开为安全的RESTful服务集。
对于服务器端消息,GET,POST,PUT和DELETE都是由Django,Piston和Django ORM层提供的。身份验证可以是各种机制中的任何一种。我是HTTP摘要身份验证的忠实粉丝。
答案 2 :(得分:0)
要实现类似的东西,你需要通过一个MQ系统,比如ActiveMQ,而不是使用普通的套接字。