用erlang 做即时通讯,国内有成功案例吗

用erlang 做即时通讯,国内有成功案例吗,第1张

Erlang不但是一种编程语言,而且它具有比编程语言更加贴近 *** 作系统的一些特性:并发线程、作业调度、内存管理、分布式、网络化等。据说使用Erlang编写的Yaws Web服务器,其并发性能是apache的15倍!
这个Erlang初始开源版本包含了Erlang的实现,同时它也是用于构建分布式高可用性系统的Ericsson中间件的最大组成部分。
Erlang特性:
● 并发性- Erlang支持超大量级的并发线程,并且不需要 *** 作系统具有并发机制。
● 分布式- 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)
● 健壮性- Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。
● 软实时性- Erlang支持可编程的“软”实时系统,使用了递增式垃圾收集技术。
● 热代码升级-Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。
●递增式代码装载-用户能够控制代码如何被装载的细节。
●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。
Erlang组件:
● Inets- >但是,是不是就没有其他的呢如果你要了解一个 web 服务器是怎么运行的。至少它是怎么可以同时服务成千上万的用户的,这个问题,可能是很多网络服务器编程都要面对的问题。那么他们的源代码呢很显然IIS 是不可能有源代码的,不然微软早就game over 了。但是你会说 Apache 是开源的,是的,它是开源的,但是我觉得等你搞明白了apache 的时候,也许是半年之后的事情了,并且你可能会觉得,哦,天啊,原来它是这么糟糕。所以,如果你希望了解web 服务器的工作原理,就需要那些剩下的10%- 轻量级web 服务器了,当然了,他们一般都是开源的,并且大部分是使用c 和 perl 写的,还有的是java、php 等,也有一些"不著名"的语言。它们比Apache 小得多。如此小的应用程序可以直接记住,系统地、严密地加以考虑,以证明它们的安全性或可伸缩性。小型Web 服务器包括:Cheetah Server,用不到一千行的C 代码编写而成。DustMote,一个非常小的Web 服务器,用一个大约 3000 字节的Tcl 源文件实现。fnord,大小取决于平台和配置,不超过20K。虽然很小,但是它支持虚拟主机、CGI 和keep-alive。i>Erlang的并发性能也并非最强过去曾认为Erlang就代表高并发,高并发就代表高性能,同时认为Erlang就只是高并发的代名词。其实,Erlang的并发性能也并非最强。首先Erlang的虚拟机是C写的,其次诸如Haskell、OCaml + JoCaml,以及Python的PyPy,其实都能提供不弱于Erlang的并发能力。
同时Erlang在顺序计算上的性能也不佳,甚至不能超过Python、Lua这类脚本语言(也许是和其本身的特殊性质有关)。所以就更落后于Haskell和OCaml这类可编译的语言。然而即使并发和并行也需要顺序计算,所以单从并发性能上来说,Erlang还不是最强的。
Erlang写的Yaws这个Web服务器,虽然能承受高并发,但性能,尤其是IO性能依然无法与lig>

如果你像其他97%的人口一样,那么至少有一次在你的生活中,你使用手机发送文本或聊天消息。普通用户在一天内发送至少14条短信,可以通过即时消息APP或SMS发送。这实际上意味着消息传递可能位于智能手机高度使用功能列表的顶部。尽管如此,语音/视频通话仍然紧随其后。

11。什么是即时消息?

即时消息或即时消息是一种在线聊天,通过互联网提供实时文本传输。一些IMAPP还使用Push技术来提供实时文本,这些文本可以在字符构成时逐字传输文本。具有高级功能的即时通讯APP甚至可以帮助用户发送文件,可点击的超链接,VoIP,视频聊天,流媒体和更多类似的服务。

那么让我们来谈谈如何开发WhatsApp之类的APP。消息市场在WhatsApp领导游戏行业(每日活跃用户数为8亿)方面占据主导地位,其次是Facebook Messenger(每日活跃用户数为7亿)和微信(每日活跃用户数量为549亿人),但这并不意味着没有更多的空间和范围,一些更有创意的解决方案,金和盛在这里提供帮助!

2 WhatsApp的Tech Stack

如果你打算制作一个聊天APP,为什么不建模一个似乎已经正确的人。让我们开始了解什么样的技术堆栈与金和盛一起开发类似WhatsApp的即时消息APP?

21。Erlang

这是用于开发WhatsApp的首席编程语言。由于其卓越的性能,速度和可扩展性,这种语言获得了最多的认可和赞赏 - 这种组合最适合实时聊天应用!

22。Ejabberd

Ejabberd XMPP(可扩展消息和存在协议)服务器是独一无二的,它具有处理成千上万条消息的能力,并且速度快,无延迟,因此非常适合您。此外,它还可以很好地与Erlang编程语言结合使用,使它成为一个神话般的二重奏,并为整个APP提供动力!该服务器使用特定的可插拔模块进行开发,该模块允许广泛的功能范围,如:

一对一聊天

联系实际和在线列表

存储和转发(离线消息)

PEP(个人事件协议)和消息键入规范

多用户聊天(MUC) - 群聊

隐私设置和帐户欺骗

消息归档管理

23。YAWS

另一个Web服务器或YAWS是为多媒体文件存储而开发的,完全由Erlang编写。这是一款高性能的Web服务器,专为具有动态内容的高负载应用而开发。YAWS在处理并行流程的能力方面独树一帜,并且具有高性能标准。

24。FreeBSD的

这是WhatsApp正在使用的 *** 作系统,并帮助它在其平台上每天发送数十亿条消息。FreeBSD *** 作系统具有精巧的网络堆栈和广泛的可靠性。这是一个功能强大,稳定,开放源码的Unix系统,实时聊天APP开发人员拥有丰富的使用经验。由于FreeBSD是一个单独的分销商,它在安装方面有一些明显的优势,并提供了二进制软件包的简单创建。

25。Lig>

Lig>

26。自定义XMPP(可扩展消息和存在协议)服务器

最初这是WhatsApp用来传输所有用户信息的东西。这项技术具有很大的优势,因为它支持一对一和多用户聊天对话。但最终公司不得不切换到不同的互联网协议,以优化其服务器性能。

27。Mnesia DB

用Erlang编写的实时数据库管理功能非常适合存储任何实时聊天APP上运行的消息,文件,图像,视频,文档以及其他多媒体文件。对于WhatsApp,数据库通过Mnesia和MySQL数据库的组合启动。

3使WhatsApp真棒的功能

从Techstacks开始,让我们深入了解更明显的视觉功能,这些功能可以帮助您制作一款酷酷的新型聊天APP。当您打算构建WhatsApp这样的APP时,在决定APP拥有哪些APP之前,研究APP的功能非常重要!

31。注册和联系

大多数实时聊天APP或即时消息APP需要用户使用电话号码登录,而有些可能会通过社交媒体登录进行登录。WhatsApp更进一步,拍摄了短信进行确认,为用户增加了一层安全性,这是通过使用第三方API(如Twilio或Nexmo等)完成的。

然后,用户应该从地址簿中添加他们的联系人。聊天只能让你周围的所有朋友聊天才能开心!你甚至可以考虑整合其他选项,如gamil或Facebook(如果你有很多口袋的话)。现在,这一步需要非常快捷方便。

在这个级别考虑Profile UX / UI可能是一个好主意。您可以考虑您可能提供的那种自定义选项,或者决定是否希望用户能够与其他社交配置文件连接,或者您是否会向用户提供任何自定义设计功能。我们提供的用户体验堪称典范,让您的用户享受注册过程。

32。即时消息/实时聊天

由于它是一个聊天APP,所以消息传递功能是给定的。然而,这不是一种肯定或否定的选择,如果你正在考虑构建一个聊天APP,那么需要解决一些小小的细节。让我们来看看金和盛的清单,以帮助您做出决定。

用户以何种方式发起聊天?

你只会提供一对一的聊天选项,还是会有群聊的功能?除了这两个选项,WhatsApp甚至允许“广播列表”功能,它允许用户将相同的消息发送到指定的人员列表。

你会只提供私人聊天选项还是提供公共聊天室?

你想添加超级秘密安全功能,消息在读取后会在指定的时间后自毁吗?

你想提供一些装饰,如字体类型,字体选项,贴纸,静音功能,共享多媒体和文档等?尽管这些功能对于MVP来说可能不是一个好主意,但是请将它们包含在未来版本的APP中。

你会提前提前安排消息的功能吗?

今天的人们高度关注数据的隐私,研究表明,大约96%的人害怕在线黑客攻击,并将他们的私人数据置于危险之中。因此,当您着手开发私人Messenger软件时,务必注意用户的安全。以下是您的计划中应该注意的主要问题。

你可以看看开发和实现一个额外的匿名自毁功能。

您可能会考虑大量投资于高级加密技术,并保护所有消息免遭劫持。

您可以看看ChatSecure和CryptoCat这两个伟大的开源加密聊天APP。他们的代码甚至可以在Github上供所有开发人员查看并理解他们的加密如何工作。金和盛开发的即时消息功能对APP用户的安全保持警惕。

33。通知和推送消息

这些可能看起来很小,但在保留用户和保持其在APP中的活跃性方面有很长的路要走。一个基本规则是让用户自定义他们想要接收的通知类型。Firebase云消息传递适用于Android和iOS平台。但本机Apple推送通知可能更适合iOS平台。但是,Firebase Cloud Messaging大大降低了开发成本和开发时间。金和盛的聊天室和MessengerAPP可让您发送相关的推送通知,并帮助您吸引和留住您的用户。

34。多媒体文件传输

当它超越文本和表情符号时,聊天确实更有趣。您的用户会寻找他们可以共享多媒体文件的功能和方式,例如图像,GIF,视频,贴纸等等!毕竟,一张可能胜过千言万语。不过,如果您拥有财力雄厚的产品,您甚至可以考虑与领先的云端服务提供同步选项,例如Google Drive,Evernote和Dropbox。金和盛制作的即时通讯APP可让您的用户完美无缺地传输多媒体文件。

35。分享位置

这是一个功能,当你的朋友在圈子里走动试图去你的房子时,它会派上用场!Apple MapKit和Google Location SDK提供了用于集成位置共享的本地工具包。如果您计划与当地企业合作以通过应用获利,您还可以在应用中考虑iBeacon和Eddystone传感器。这有助于用户在进入会场的地理围栏后收到相关消息。很像WhatsApp,金和盛 制作的即时通讯APP可让用户与其他用户分享他们的位置。

4额外的实时聊天APP功能,您可能会考虑为您的APP

虽然WhatsApp可能会引领整个潮流,但这并不意味着它们是完美无瑕的,并且可以装载各种各样的功能。您可以查看WhatsApp尚未提供的以下功能并做出明智的决定!

41。VoIP(互联网协议语音)呼叫

在实施方面,这是一个昂贵的方面,但在用户中是一个非常有价值的功能。通过Skype或Viber等实时聊天应用进行呼叫越来越受欢迎,并逐渐取代传统的手机通话。

42。视频聊天

距离已经增加,时间被证明是一种难以捉摸的商品。在这个时代和时代,视频聊天或视频通话已经超越了“酷”,并且变成了一种必需品,以便与那些居住在那里的人保持联系远。

43。音频和视频流

这是SnapChat的核心功能,并且已被其他领先渠道(包括Instagram和Facebook)效仿。这可能是一个值得投资的功能。

44。活动计划和同步日历

此功能非常适合提醒用户有关特别活动或庆祝活动的信息,以便您可以提前计划。当您试图吸引“商业”人群到您的APP时,此功能特别有利并且效果很好。

45。应用内购买和订阅计划

必须有一个收入模式,这是实时聊天应用货币化的最有效方式之一。

46。多平台聊天

当您提供跨平台使用APP的选项时,无论您的APP是连接到桌面还是始终处于运行状态,您都可以帮助用户保持与APP的联系!

47。自毁信息

这是一个很棒的功能,可以让你发送秘密聊天信息给你的朋友,然后在他们看到它的一段时间后自毁。

48。云服务同步

当您允许用户将您的应用与突出的云服务同步时,可以以更高效的方式监控,更新,存储和扩展托管环境。

5促成和影响成本的因素

成本和预算因素对正在开发APP的人有很大的影响,当你跳跃时,它应该是一个计算出来的。虽然可能很难说出制作应用需要多少费用,但是可以列出对应用开发成本有重大影响的关键决策。

你选择的平台将决定你将要咳嗽的钱的种类。明智地选择是否要为Android,iOS或两者构建!

您决定继续使用的功能范围将决定您将要投入的时间和金钱类型。很自然地,你拥有的功能越多,成本就越高。虽然您必须优化您在MVP中提供的功能数量,但保留足够的功能以保持用户参与。

制定预算是您在整个过程中必须做出的最重要的决定之一。正是这个决定会推动所有其他决策,重要的是要保持现实,不要太过分或太紧张。

选择能够帮助您完成手头任务的代理商,同时满足您的时间表,提供优质的产品,并保持在预算范围内。

Erlang是一种函数式语言,他最大的特色就是变量不变。这一特色使其能够充分利用现在的多核处理器来处理并发。所以在并发需求较大的地方,可以使用该语言。
通常情况下,像网站其实也是可以用Erlang来编写的。可以使用yaws,类似于IIS的服务器管理软件。

没有IIS却有网站在其上正常工作的话,应该是用第三方软件运行的,比如Apache for WIndows
你得看具体是什么第三方软件,然后找对应的网络教程。
Windows下的Web Server平台太多了,除了微软自己的IIS外,第三方的包括:
Jetty
KLone
Cherokee >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12623089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存