Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Scala Perl/Python体系结构有意义吗_Python_Perl_Sockets_Scala_Client Server - Fatal编程技术网

这个Scala Perl/Python体系结构有意义吗

这个Scala Perl/Python体系结构有意义吗,python,perl,sockets,scala,client-server,Python,Perl,Sockets,Scala,Client Server,在另一个问题中,我问“最好的”语言是出于某种目的。意识到这个目标有点太难开始,我简化了我的想法:)但是有非常有用的语言提示。所以我决定了Scala的桌面应用程序,并在Web服务器上考虑Perl和Python之间的关系。 我想编写一些类似异步聊天(有点像电子邮件)的程序。因此,你启动你的程序,选择你的名字并添加一个具有唯一id的朋友。然后,你可以给他写一条简单的消息,当你的朋友启动他的电脑时,启动“chat.exe”,他会收到邮件(需要互联网),并且能够回答。没有特殊的功能,笑脸或文本格式,只是简

在另一个问题中,我问“最好的”语言是出于某种目的。意识到这个目标有点太难开始,我简化了我的想法:)但是有非常有用的语言提示。所以我决定了Scala的桌面应用程序,并在Web服务器上考虑Perl和Python之间的关系。 我想编写一些类似异步聊天(有点像电子邮件)的程序。因此,你启动你的程序,选择你的名字并添加一个具有唯一id的朋友。然后,你可以给他写一条简单的消息,当你的朋友启动他的电脑时,启动“chat.exe”,他会收到邮件(需要互联网),并且能够回答。没有特殊的功能,笑脸或文本格式,只是简单的学习目的

我的概念是:将Scala用于“chat.exe”(或者仅仅是一个“chat.jar”是否可能?),它通过套接字与处理请求的Perl/Python框架进行通信。 所以你输入“你好”,然后点击发送。此消息通过套接字传输到Perl/Python脚本,该脚本读取请求并将此消息放入MySQL数据库。另一方面,朋友的chat.exe会检查是否有新消息,如果有,Perl/Python脚本会传输消息。也通过插座

你觉得这样行吗?插座是否合适且合适?或者休息?但是我认为对于REST请求,您必须使用URI(http://example.com/newmessage/user2/user3/Hi_how_are_you). 这看起来很不安全

期待您的评论

祝你今天愉快


Kurt

要实现类似的功能,您需要通过MQ系统,比如ActiveMQ,而不是使用普通套接字。

如果您问我,我认为Scala最适合服务器端。Scala在JVM上运行,Java在服务器端有一个非常大的生态系统。您有各种各样的应用程序服务器(tomcat、jetty、glassfish等)

聊天是演员的经典用例。我想你在这方面会有所启发

您可以使用出色的Scala web框架,如Lift。你甚至可以在网上聊天。下面是一个使用comet(服务器推送)的聊天应用程序示例:

关于休息:如果你觉得它不安全,那么

  • 使用HTTPS与服务器通信
  • 在您的示例中,您的目的是将消息放入服务器(至少我是这样理解的),因此您很可能希望使用put请求,在这种情况下,消息文本将位于POST请求正文中
  • 将Scala用于“chat.exe”(或者仅仅是一个“chat.jar”是可能的?)

    第一步。想想看。实际上写一些东西,看看你能做些什么

    它通过套接字与处理请求的Perl/Python框架进行通信

    没有意义。所有的互联网通讯都是通过插座完成的。把这句话删掉,你就不会失去任何意义

    此消息通过套接字传输到Perl/Python脚本,该脚本读取请求并将此消息放入MySQL数据库

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

    另一方面,朋友的chat.exe会检查是否有新消息,如果有,Perl/Python脚本会传输消息。也通过插座

    对。同样,插座也没什么意义

    在套接字之上有几十种协议。FTP、Telnet、HTTP、SMTP等

    第二步是找出您想要使用的协议。顺便说一下,REST是HTTP的一种特殊用途。在放弃HTTP和REST之前,您应该非常仔细地研究它们

    这看起来很不安全

    不清楚你为什么这么说。我只能猜测你不知道HTTP的安全特性


    懒惰的程序员可能会这样做

  • 安装Python、Django、MySQL Python和活塞

  • 定义一个Django模型,配置默认值,以便该模型作为一组安全的RESTful服务公开


  • 服务器端消息GET、POST、PUT和DELETE都是由Django、活塞和Django ORM层提供的。身份验证可以是各种机制中的任何一种。我非常喜欢HTTP摘要身份验证。

    您不需要对REST请求的内容使用URI,例如,您可以发布
    {“发件人”:“user2”,“收件人”:“user3”,“消息”:“您好”}
    to我认为,如果你改变你的语言选择,你可能会取得更大的成功:服务器的Scala和桌面应用的Python。也就是说,您可以轻松地使用Scala(或任何像样的语言)实现这两种功能。但是,坦率地说,你的问题相当模糊,很难给出任何权威的答案。为什么要使用三种语言和一个低级的沟通渠道?“需要互联网”?这是什么意思?为什么在这里?@Andrew:谢谢,我仔细看了这个@好的,谢谢。但是我不确定我是否可以编译一个独立的python程序(py2exe和pyinstaller看起来很不成熟)@Raphel:你会推荐什么,我感谢改进@因为如果不是这样的话,桌面应用程序就无法从服务器接收消息。我也曾想过在服务器上使用Scala。不幸的是,我的网络托管计划只支持Perl/Python/PHP(很多P!),但我应该考虑升级。或者你知道好的选择吗?那么,通过参与者,我可以在客户机/服务器之间进行通信?因为我想要一个桌面程序,而不仅仅是一个网页。谢谢@库尔特:是的,你可以使用远程演员:。关于主机。。。你可以免费使用(但如果你需要更多的处理能力,你应该付费),据我所知Scala在那里工作。您还可以看看AWS:谢谢,您对这些MQ(与MessageBrocker相同?)系统有很好的介绍吗?库尔特