基于Node.JS, MongoDB的开源IM聊天框架Spika
发现一款强大的开源聊天框架 Spika 。 它不仅提供iOS,Android,Web端的源码,还有后端的源码,都是开源的。Spika的提供者是来自克罗地亚的一家移动APP公司 Clover Studio 感谢他们的团队把这个项目从头到脚都开源了。
相对于传统的LAMP(LINUX, APACHE, MYSQL,PHP), Nodejs + MongoDB 是一种比较新的后端组合。Google自己的聊天平台Google Messaging Cloud(GMC)就是基于NodeJS+MongoDB实现的。
废话不多说,开始使用吧!
安装服务器端
1环境配置。 官网 上提供的是Ubuntu1404版的配置过程。见下图:
由于我用的服务器是Amazon Linux,用yum来安装。
git clone git://githubcom/nodejs/nodegit
cd node
git checkout v447
/configure
make
sudo make install
sudo su
vi /etc/sudoers
:/usr/local/bin```
3安装imagemagick
5安装Spika
6安装gulp
sudo npm install gulp -g
7编写配置文件
把Confighost和port的值设为自己服务器的hostname和port, 把ConfigchatDatabaseUrl的值改为mongoDB的路径。最好用1024以上的port。mongoDB如果没有修改安全选项的话,最好用127001。
8 运行项目
这时候可能会报错
找不到jsdoc。 解决方法:
然后再次运行
开启服务器
node src/server/mainjs
这个时候用浏览器登陆
主机号:端口号/spika
就可以开始聊天啦!
除了web版,它还有android和ios版,下次再尝试吧:)
C#开源项目(国外的还是很多) 一、Ajax框架 AjaxNET Professional
(AjaxPro)是最先把AJAX技术在微软NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。
MagicAjaxNET是一款在ASPNET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASPNET控件或自己写javascript脚本代码。
AnthemNET是为ASPNET开发环境提供的开源AJAX工具包,它可以运行于ASPNET 11和20。
二、工作流(workflow)
WorkflowNet是使用微软Net技术基于wmfc标准的创建工作流引擎。
NetBPM是JBpm移植到net平台下的一款开源工作流软件。NetBpm可以很容易和Net应用程序集成在一起,可以创建,执行和管理工作流程序。 Bpm
Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
其实微软自己的WPF做WorkFlow也很厉害。
三、文本编辑 FCKeditor是一款功能强大的开源在线文本编辑器(DHTML
editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量级且不必在客户端进行任何方式的安装。 FreeTextBox
是一个基于 Internet Explorer 中 MSHTML 技术的 ASPNET 开源服务器控件。这是一款优秀的自由软件(Free
Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web
系统中都会有用途。 VietPad是一个功能完整的跨平台的Java/NET的Vietnamese
Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。
NetSpell是一款NET框架下的开源拼写检查引擎。 PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML,
WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。
四、博客(Blog)
NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。
dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback
一样增加许多附加的特征,有完整的Blogger/MovableType
API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌,基于WEB的
DHTML,OPML,配置的编辑器。 DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。
tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。
Blog现在可以使用MVC的其他开源项目来构建,这些项目在codeplex上有很多,其中微软自己的就有OXite。
五、系统构建
NETZ是一款免费开源工具,它可以压缩和打包微软 NET 框架可执行文件(EXE,
DLL)以使他们更小。更小的可执行文件占用的磁盘空间较少且因为读取文件时对磁盘的访问较少而使读取数度更快。它和PE(portable
executable)打包工具不一样,NETZ是使用 C# 编写的存粹的 NET 解决方案。NETZ可以用来打包几乎每一种 NET
支持的语言编写的程序。NETZ支持 NET EXE 和 非共享(non-shared)的 DLL
文件。压缩过的程序能以相同的方式解压缩这些对最终用户是透明的。 NAntContrib为NAnt提供定制任务的工具。
Prebuild是XML驱动的一款跨平台pre-build工具,使开发人员很容易就可以为IDE和NET开发工具生成项目或构建文件。它支持 Visual
Studio NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。
BusyBeeBuilder是NET平台下功能强大,易于使用,可扩展的开源构建自动操作工具。 DracoNET 是 Windows
服务应用程序。它的设计使其容易持续的集成新特性。DracoNET监视你的源代码储存库。当探测到你的项目有变化时自动重新创建项目并把包含变化列表的创建结果发送到你的Email。
Build Studio为软件的自动构件处理提供了一套完整的解决方案。 CruiseControlNET是NET平台下的一款整合服务器。
NAnt类似Apache项目下的Ant,是Net下的开源构建工具。适用在自动编译NET应用的场合,如NET项目的每日构建(nightly
build)。
说老实话,我并不认为系统构建工具的作用真的有那么强大,如果你真的计划做一个很大的项目,且持续开发时间很长,那么你可以使用上面的系统构建工具。
五、图表制作
ZedGraph是C#编写的NET类库,提供了用户控件和web控件。它可以创建2D的线性图、条形图和饼图。它功能完整且有详细的功能自定义,不过
使用默认的选项就足够好用了。一款类似 PieChart, StackBar, LineChart的C#开源图表组件。
NPlot是一款NET下的开源图表类库它值得称道的地方是优雅且灵活的API设计NPlot包含了Windows Form控件,
ASPNET控件和一个创建Bitmap的类。还有一个可用的GTK#控件。 XSCharting是C#开发的图表组件,提供了多种多样的图表选项。
DaveChart是一个免费的DotNet类库。 NChart 提供了很多值得应用在商业,教育等多个领域的2 D图表。
微软自己已经提供了一个chat绘制控件,也就是原来的dunat,如果那个可以满足你的要求,那么完全没有必要使用上面的。但是如果你需要研究画图,作自己定义的chat,那么这些开源的项目将对你有很大的帮助。
六、聊天系统
Dot Net Chat
server是基于DotNet框架开发的聊天服务器和客户端项目。说老实话,我对这个很感兴趣,有时间,要瞧瞧它的代码是咋实现的。
七、内容管理系统(CMS)
Ludico是C#编写的居于ASPNET
20的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。
mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASPNET 和GNU/Linux 或Mac OS X的Mono的平台上。
Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft NET 和Mono 平台,支持SQL Server,
PostgreSQL或MySQL作为底层数据库。 Umbraco是一款在net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。 Kodai
CMS是NET平台下的一款功能齐全的内容管理系统。 Rainbow项目是一款使用Microsoft’’s
ASPNET和C#技术开发的有丰富功能的开源内容管理系统。 NkCMS是使用ASPnet和Sql server 2000开发的内容管理系统。
Amplefile是一款内容管理系统,是Net环境下的windows应用程序,使用了Net remoting
GoKryo是一个用ASPNET(C#)NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。 ndCMS是
ASPnet
(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署Net站点以节省你的时间和金钱。
这些开源的CMS我试用了几个,说真的,拿来研究可以,要真的实施,估计很难。
九、论坛系统
YetAnotherForum可以作为ASPNET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。
十、安装制作
izfree是一套套免费的工具用于帮助创建使用Microsoft”’’s Windows
Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。
Windows Installer XML
(WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。
一般的需求试用VS
自带的就可以了,更复杂的需要用到InstallShield,这样看起来开源的就没啥意义了。
十一、IoC容器
Springnet是从java的Spring
Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Springnet都有提供。Springnet最初发布的版本包含了一个很有特色的IoC容器。
Castle是一组应用开发的工具,内含一个简单的IoC容器。
StructureMap是NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的NE
我用过StrucutureMap,但是给我的感觉是,试用这个似乎没多发帮助。
十二、网络客户端
NET FTP Client是C#编写的开源类库。
NET Telnet是微软NET
Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。
metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP,
UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。
LJNET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。
NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones,
Pocket PC和Windows的电脑(NET CF or NET Framework)。它比起其它观察器的优点是可以在Pocket
PC上全屏显示而且可以旋转屏幕。
GVDownloader允许你从google videos, metacafe, putfile,
youtube, breakcom 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。
DotNetOpenMail能够使你在微软net框架开发的aspnet,
WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用SystemWebMail类库就可以容易的创建带附件HTML和
Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建
multipart/alternative,multipart/related和multipart/mixed的MIME消息。
DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN
Messenger就可以使用DotMSN和MSN
Messenger服务通信DotMSN是C#编写的,所以NET环境支持的语言都能够使用DotMSN类库使用简单而且实现方便。它灵活,坚固,
轻量级利于整合到任何应用系统使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能如果你的应用程序需要和
Messenger服务通信,DotMSN是一个不错的工具
SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP
OpenPOPNET一组和POP Servers通信的NET类库。
IceChat是为连接多样的IRC Servers设计的Internet Relay Chat
Client。
lphant是为edonkey/emule开发的开源客户端程序。
NET FTP Client C#开发的类库。
OpenSmtpnet 是 C# 开发的开源SMTP组件。它不依赖NET Framework
的SystemWebMail 包中的类。允许开发人员使用不同于MS SMTP的SMTP 服务器且提供了web
service而可以通过HTTP发送email。
这里面有几个值得推荐,例如DotMsn这个,在某些场合就很有用处。
今天我们有幸采访了IgorSeletskiy,他是CloudLinux的创始人和Imunify360安全软件的创始人。我们讨论了网络托管行业的不同安全挑战,以及他的产品为用户提供的解决方案。
你能把IMUNIF360呈现给我们的观众吗大约五六年前,我们开始开发imunif360,因为我们知道安全性在网络托管市场将变得越来越重要。我们知道,针对网站的攻击将继续升级。imunifiy360所做的是完全保护Linuxweb服务器。
我们保护所有站点,我们保护控制面板和服务器本身。我们还检测到服务器上可能已经存在的任何恶意软件,我们可以完全清除服务器上可能存在的任何感染。
我们还将虚拟地修补WordPress和WordPress插件,这样即使你运行的是一个过时的WordPress版本,你也不会立即感到不安全。你能描述一下公司背后的故事吗?是什么激发了这个想法?到目前为止它是如何演变的
该公司已有12年历史,我们最初是为网络托管公司提供Linux发行版。我们理解“坏苹果”的问题,即一个站点可能会影响服务器上的所有其他站点。
我们在这方面取得了相当成功——如今,大多数网络托管公司都在使用CloudLinux。因此,我们已经有很多客户在网站托管空间,我们开始看到越来越多的网站安全要求。
当我们开始时,网站的稳定性是首要问题,但在五、六年前,网站的安全性成为许多主持人的首要问题。就在那时,我们决定启动Imunify项目。你们提供什么服务
Imunify360是一种软件,您可以将其安装在自己拥有或从数据中心租用的服务器上。它结合了检测和清除恶意软件的综合层,然后保护您的服务器免受未来的攻击。你公司的使命是什么
我们的目标是确保酒店和服务提供商能够以最佳的性能和效率运营。我们真的尽力帮助主机行业的每一个人,无论大小,都能提供绝对令人惊叹的服务,并能与任何人竞争。
你与其他类似网站和公司的区别是什么I我会说这是质量——我们拥有迄今为止最好的防守质量。我们是唯一一家能够抵御几乎所有攻击并自动清除服务器上任何恶意软件的公司。
0天防御是在我们的解决方案中构建的,由于我们正在申请专利的技术,即使是那些我们不知道的攻击也会自动转移和阻止。
我们可以做很多市场上其他人做不到的事情,这就是为什么iUnif360是网络托管市场上使用最多的解决方案。
你如何展望你所在行业的未来我们看到该行业有很多整合,但仍有增长,尤其是在发展中国家。因此,我们期望社区在未来十年保持活力,继续发展壮大。
开源软件,表示公开源代码的软件。软件既然连源代码都公开,因此开源软件具备可以免费使用和公布源代码的主要特征。
开源软件主要是降低风险:拥有源代码使顾客们可以控制那些他们的业务所赖以生存的工具。
当一个open-source产品的开发者提高价格,增加了难以接收的限制,或者使用了一些使顾客不满意的方法,另一个不同的组织将使用该源代码开始开发新的产品以解决原来机构的问题。顾客也能自己维护或找别人改进它以达到自己的要求。
顾客控制软件,这在传统私有软件模式下是闻所未闻的事情。即使是一些财大气粗的顾客也可能缓解由于传统软件商自己内部的问题而导致严重的金融危机或公司被别的公司收购的风险。
"IM"实时通信(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。
"IM"实时通信,读音:[shíshí tōngxìn]
造句:
1、IM(实时通讯)是一个终端连网一个即时通讯网路的服务。
2、大部分的IM(实时通讯)服务提供了PresenceAwareness的特性──显示联络人名单,联络人是否在线上与能否与联络人交谈。
IM(实时通讯InstantMessaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。不容置疑,Internet已经成为真正的信息高速公路。从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于C/S架构的网络聊天工具是切实可行的。
im服务器是instant message服务器的简写。
即时通信(instant message,IM)是指能够即时发送和接收互联网消息等的业务。即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。
即时通信已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。微软、腾讯、AOL、Yahoo等重要即时通信提供商都提供通过手机接入互联网即时通信的业务,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。
XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
全称:可扩展通讯和表示协议
简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。XMPP is the IETF's formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;
核心的XML流传输协议
基于XMLFreeEIM流传输的即时通讯扩展应用
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
XMPP的扩展协议Jingle使得其支持语音和视频。
XMPP的官方文档是RFC 3920
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。
以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message></message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。
目前不少IM应用系统如:Google公司的Google Talk以及Jive Messenger等开源应用,都是遵循XMPP协议集而设计实现的,这些应用具有很好的互通性。
0条评论