推荐2个开源聊天服务器

推荐2个开源聊天服务器
2016年07月05日 09:35:06 freewebsys 阅读数:23124
版权声明:本文为博主原创文章,未经博主允许不得转载。博主地址:http://blog.csdn.net/freewebsys https://blog.csdn.net/freewebsys/article/details/51820075
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51820075 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于移动互联网
快速开发移动互联网应用,参考开源版本,快速进行搭建。
这样非常高效,可以完成产品验证,为市场推广节省时间。
虽然现在微信,qq已经非常火了,但是做一款自带聊天的app,还是能够黏住用户 的。
但是一个聊天产品的开发需要很多组件,比如消息队列,通知,在线状态检测。
每次都从0开始做是成本很好的,还是找个开源的系统搭建下。
然后在慢慢优化,才是效率最高的,先跑起来,然后在学习里面的原理。
能让公司在最短的时间内搭建起来app应用,稳定运行,活下来才是王道。
毕竟市场是竞争残酷的,失去了先机,失去了时间,就被淘汰掉了。

2,actor.im
这个是个国外的项目,项目地址:
https://actor.im/

项目是服务端和客户端都有的开源项目。
服务端是用scala写的。
Actor Platform is released under AGPL.
但是开源协议是AGPL,如果商业使用可能会有问题。
不然apache 自由。
那为啥还推荐呢,也可以学习里面的设计呢。
数据设计在:
https://github.com/actorapp/actor-platform/tree/master/actor-server/actor-persist/src/main/resources/sql/migration
里面是数据库的设计。

3,goim
纯Golang实现
支持单个、多个以及广播消息推送
支持单个Key多个订阅者(可限制订阅者最大人数)
心跳支持(应用心跳和tcp、keepalive、http log pulling)
支持安全验证(未授权用户不能订阅)
多协议支持(websocket,tcp,http)
可拓扑的架构(job、logic模块可动态无限扩展)
基于Kafka做异步消息推送
github项目:
https://github.com/Terry-Mao/goim

项目简介,讲的不错。
https://studygolang.com/articles/5486

4,telegram
另外还有一个开源聊天项目,但是官网被封了。
github上面项目:
android 客户端:
https://github.com/DrKLO/Telegram
IOS客户端:
https://github.com/overtake/telegram
web版本:
https://github.com/zhukov/webogram

web界面版本,也有好的可以参考的代码。

5,总结
总结起来,两个项目更倾向于go的那个项目。
直接将项目测试部署就可以使用了。多么方便啊。
合理利用开源项目,从开源项目当中学习人家的系统咋设计的。
能够学习到成熟系统的设计思路,代码实现,可以提高自己。
接下来就研究下goim项目了。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51820075 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
客户端开发文档 项目类别:基于对话框的MFC程序。 项目名称:MFCClient 一、 程序的初始化。 1、 在函数CMFCClientDlg::AddInit()中进行相应的操作。主要功能为对控件进行初始化。禁用控件和设置空间初始值。 2、 在CMFCClientDlg::InitInstance()中加载套接字库 二、 客户端单击“连接服务器”按钮后的操作。 1、 创建一个新线程,用于处理相关的SOCKET操作。线程函数为CMFCClientDlg的静态成员函数fnSocket(). 2、 fnSocket()的主要作用。 a、 使用函数CMFCClientDlg::CheckName(CString)对昵称进行检查 b、 创建套接字、检查输入的端口、与服务端进行连接以及循环接收来自服务端的消息。 c、 将应当禁用和开启的控件分别进行操作。 3、使用DisposeRecvMsg(Cstring str)对收到的消息进行处理。 三、 客户端单击“发送消息”按钮后的操作。 从文本控件中获得Cstring类型的数据,与想发送的目标客户端昵称根据之前的约定进行组合,然后转换为TCHAR的数据,再发送到所有的客户端。 四、 客户端单击“断开服务器”按钮后的操作 关闭套接字,此时,服务端将会收到关闭消息,从而作出相应的相应。 服务端开发文档 项目类别:基于对话框的MFC程序。 项目名称:MFCServer 一、 程序的初始化。 1、 在函数CMFCServerDlg::AddInit()中进行相应的操作。主要功能为对控件进行初始化。禁用控件和设置空间初始值。 2、 在CMFCServerApp::InitInstance()中加载套接字库 二、 服务端单击“开启服务器”按钮后的操作。 1、 创建一个新线程,用于处理相关的SOCKET操作。线程函数为CMFCServerDlg的静态成员函数fnSocket(). 2、 fnSocket()的主要作用。 a、 创建套接字、检查输入的端口、绑定套接字、监听端口以及使用select模型开始处理套接字。 b、 将应当禁用和开启的控件分别进行操作。 3、 维护用于存储客户端昵称和套机字的Carray数组m_ClientMap 4、 使用函数DisposeRecvMsg(SOCKET s,Cstring str)来处理消息接收到的消息。 三、 服务端单击“停止服务器”按钮后的操作。 清空相关的数据和对相关控件的禁用进行操作。 四、 服务端单击“发送消息”按钮后的操作。 从文本控件中获得Cstring类型的数据,然后转换为TCHAR的数据,再发送到所有的客户端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值