开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!
GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端。
这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS、国产CPU、国产数据库。在接单的时候,也有客户要求GGTalk能支持国产Linux系统。于是,就逐渐有了要为GGTalk增加Linux端的想法。
还记得在2020年就尝试过使用Avalonia来开发GGTalk的Linux客户端,当时还写了一篇博客《国产化即时通信系统开发 -- 使用Avalonia实现GGTalk的UI界面(Linux、Ubuntu、UOS、中标麒麟)》,后面经测试,发现当时Avalonia的版本在国产OS上对中文的支持有问题,出现乱码,于是就放弃了Avalonia,改用国人开发的跨平台UI框架CPF。经过一年多的开发(断断续续地),GGTalk Linux端的功能基本完整了,现在放出来跟大家分享。也算是兑现了当初对好几个GGTalk开发者的承诺(只是日期延后了很多,抱歉)。
一. V8.0版本变更
相比于7.0,这次版本变更的主要内容如下:
(1)增加Linux客户端,支持国产操作系统(如统信UOS、银河麒麟、中标麒麟、深度等)、国产CPU(如龙芯、鲲鹏、飞腾、麒麟、兆芯等)。
(2)增加Linux服务端,支持在CentOS上部署运行服务端。
(3)增加支持同一账号在多个设备上(Windows、Linux、Android、iOS)同时登录,消息自动在多端间同步。
(4)手机端功能更完整,几乎达到PC端功能的90%。
废话不多说,先上张GGTalk 8.0在银河麒麟系统上运行的截图:

二. GGTalk 8.0 所需的开发、部署、运行环境
总的说来,GGTalk 8.0的服务端有Windows版本和Linux版本,客户端版本有:Windows、Linux、Android、iOS。
涉及到的开发语言有:C#、Java、Objective-C
涉及到的开发环境有:Visual Studio、Android Studio、XCode。
眼尖的同学已经发现,我们的Linux服务端和Linux客户端都是基于.NetCore的,用的都是C#。(真是大爱C#,自认为是最优雅的语言。在想后面是不是把手机端也用Xamarin重写了?这样就全部统一为C#了)
GGTalk 8.0 各个端所需的操作系统版本、运行时、开发环境、开发语言的详细说明如下列表所示:

GGTalk 8.0对数据库的支持除了SqlServer和MySql外,也是支持国产数据库的,像达梦数据库、南大通用等。
三. GGTalk 8.0 源码目录说明
从本文文末下载GGTalk 8.0的源码,可以看到有三个压缩包:
(1)GGTalk_V8.0.rar :这个压缩包中主要是一个VS的解决方案,下面有GGTalk 8.0的Windows和Linux版本的服务端,以及Windows和Linux版本的客户端。
(2)GGTalk_V8.0_Android.rar :这个压缩包里面是GGTalk 8.0的安卓端源码。
(3)GGTalk_V8.0_iOS.zip:这个压缩包里面是GGTalk 8.0的iOS端源码。
(4)GGTalk_V8.0_Deploy.rar :可直接部署的GGTalk 8.0 版本,包括服务端、客户端、手机端的可以执行包。
GGTalk的VS的解决方案下的项目比较多,这里简单说明一下,如下图所示:

NetCore目录下的放的都是与Linux版本相关的项目。我们重点关注红框标记出的四个项目:
GGTalk:是GGTalk 8.0的Windows客户端。
GGTalk.Server :是GGTalk 8.0的Windows服务端。
GGTalk.Linux:是GGTalk 8.0的Linux客户端。
GGTalk.Server.NetCore :是GGTalk 8.0的Linux服务端。
数据库脚本:在该文件夹中,有GGTalk 8.0的SqlServer数据库的脚本和MySql数据库的脚本。
四. GGTalk 8.0 数据库表说明
(1)GGUser :用户表,所有注册用户都保存在该表中。
(2)GGGroup :群组表,所有创建的群都保存在该表中。
(3)OfflineMessage :离线消息表,当目标用户不在线时,发送给他的消息存在该表中。
(4)OfflineFileItem :离线文件表,当目标用户不在线时,发送给他的文件对应的记录存在该表中。
(5)GroupBan :群禁言表,当群中的用户被禁言时,对应的记录将存在该表中。
(6)ChatMessageRecord :聊天记录表,一对一的聊天记录、群聊天记录都存在该表中。
(7)AddFriendRequest :加好友请求表,所有添加好友的请求消息都存在该表中。
(8)AddGroupRequest :入群请求表,所有申请入群的请求消息都存在该表中。
(9)GGConfiguration : 配置表,用于预留存储与GGTalk相关的配置信息。
五. GGTalk 8.0 部署说明
下面我们说明一下如何部署GGTalk_V8.0_Deploy.rar压缩包中的可直接运行的各个端。
(1)服务端默认配置是使用内存虚拟数据库,不需要真实数据库,这样方便测试。
(2)Windows 服务端:将GGTalk.Server文件夹拷贝到服务器上,运行 GGTalk.Server.exe。
(3)Linux 服务端:将GGTalk.Server.Linux文件夹拷贝到CentOS服务器上,进入该文件夹,打开终端,执行命令:dotnet GGTalk.Server.NetCore.dll。
注:GGTalk Windows服务端或Linux服务端只要启动一个就可以的,所有类型客户端都可以连到这个启动的服务端。
(4)Windows 客户端:修改GGTalk目录下的客户端配置文件GGTalk.exe.config中ServerIP配置项的值为服务器的IP,双击GGTalk.exe运行客户端,注册帐号登录试用。。
(5)Linux 客户端:将GGTalk.Linux文件夹拷贝到国产Linux系统(Ubuntu也可以)上,进入该文件夹,打开终端,执行命令:dotnet GGTalk.Linux.dll。
注:如果Linux电脑的CPU不是x86/x64架构的,则需要使用对应架构的libe_sqlite3.so、libSkiaSharp.so来替换运行目录下的同名文件。可联系我获取其它架构的so库。
(6)手机端:将对应的apk或ipa包在手机上安装,启动后,在登录界面设置服务器的IP地址,即可登录。
(7)内存虚拟数据库内置了测试帐号: 10000,10001,10002,10003,10004,一直到10009;密码都是 1。
如果需要使用真实的物理数据库,则需按下列步骤进行:
(1)在SqlServer 2008+ 中新建数据库 GGTalk,然后在该库中执行 SqlServer.sql 文件中的脚本以创建所需表。
(如果要使用MySQL数据库,则使用MySQL.sql脚本)
(2)打开服务端的配置文件GGTalk.Server.exe.config
(1)修改 UseVirtualDB 配置项的值为false。
(2)修改 DBType 为 SqlServer 或 MySQL。
(3)修改 DBIP 配置项的值为数据库的IP地址。
(4)修改 DBPwd 配置项的值为数据库管理员sa的密码。
后续其它的步骤就与虚拟数据库是一样的了。
六. GGTalk 8.0 源码下载
(1)Windows 服务端、客户端 + Linux 服务端、客户端:GGTalk_V8.0.rar (提取码: 1234)
(2)Android 端:GGTalk_V8.0_Android.rar (提取码: 1234)
(3)iOS 端:GGTalk_V8.0_iOS.zip (提取码: 1234)
(4)可直接部署运行:GGTalk_V8.0_Deploy.rar (提取码: 1234)
如果你觉得还不错,请点赞支持啊!谢谢。
开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!的更多相关文章
- GGTalk ——C#开源即时通讯系统
http://www.cnblogs.com/justnow/ GGTalk ——C#开源即时通讯系统 下载中心 GGTalk(简称GG)是可在广域网部署运行的QQ高仿版,2013.8.7发布GG ...
- GGTalk——C#开源即时通讯系统源码介绍系列(一)
坦白讲,我们公司其实没啥技术实力,之所以还能不断接到各种项目,全凭我们老板神通广大!要知道他每次的饭局上可都是些什么人物! 但是项目接下一大把,就凭咱哥儿几个的水平,想要独立自主.保质保量保期地一个个 ...
- 即时通信系统中实现全局系统通知,并与Web后台集成【附C#开源即时通讯系统(支持广域网)——QQ高仿版IM最新源码】
像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用C#开源即时通讯系统——GGTalk的 ...
- Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区
Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区 Oschat IM 开源即时通讯项目介绍 255人收藏此文章, 我要收藏 发表于5天前(2013-08-28 ...
- 统信UOS系统部署.Net Core 5.0
平时很少用Linux,需要的时候才查资料,记录下遇到的问题和解决办法.这次部署的系统是统信UOS,arm64位CPU 第一步:安装.Net Core 5.0运行环境 统信UOS是基于Debian 10 ...
- 即时通信系统中实现聊天消息加密,让通信更安全【低调赠送:C#开源即时通讯系统(支持广域网)——GGTalk4.5 最新源码】
在即时通讯系统(IM)中,加密重要的通信消息,是一个常见的需求.尤其在一些政府部门的即时通信软件中(如税务系统),对即时聊天消息进行加密是非常重要的一个功能,因为谈话中可能会涉及到机密的数据.我在最新 ...
- 中秋礼物!开源即时通信GGTalk安卓版全新源码!
经过连续两个多月的努力(开发.调试.测试.改bug),我们终于赶在中秋国庆之前能把全新的GGTalk Android版本献给大家. 4年之前我们就推出了GGTalk Android的第一个版本,但是功 ...
- 新一代开源即时通讯应用源码定制 运营级IM聊天源码
公司介绍:我们是专业的IM服务提供商!哇呼Chat是一款包含android客户端/ios客户端/pc客户端/WEB客户端的即时通讯系统.本系统完全自主研发,服务器端源码直接部署在客户主机.非任何第三方 ...
- CoreWCF 1.0.0 发布,微软正式支持WCF
2022年4月28日,我们达到了一个重要的里程碑,并发布了CoreWCF的1.0.0版本.对Matt Connew (微软WCF团队成员)来说,这是5年前即 2017年1月开始的漫长旅程的结束.Mat ...
随机推荐
- 交警也觉得妙——Python 识别车牌
车牌识别在高速公路中有着广泛的应用,比如我们常见的电子收费(ETC)系统和交通违章车辆的检测,除此之外像小区或地下 车库门禁也会用到,基本上凡是需要对车辆进行身份检测的地方都会用到. 一些背景: 车牌 ...
- 再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大
1.摘要 近期,腾讯云数据库在文章「腾讯云TDSQL-C重磅升级,性能全面领跑云原生数据库市场」中提到,某些场景下性能有非常大的提升,且超过国内某橙色云厂商.恰好,在5月份,我们对各个厂商的云原生数据 ...
- Arrays.asList的使用
Arrays.asList的作用是将数组转化为list,一般是用于在初始化的时候,设置几个值进去,简化代码,省去add的部分. 示例: List<String> menuList = Ar ...
- 扩展新的WCV到标准的WC后,不能在业务角色里面看见视图解决方法
by zyi 感谢群主红枣的分享 1.把你的WCVIEW扩展进WC中 2.使用UI Designer打开你的WCVIEW 3.更改你的WCVIEW名字
- NC20439 [SHOI2017]期末考试
NC20439 [SHOI2017]期末考试 题目 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布.第 \(i\) 位同学希望在第 \ ...
- 今天安装了eclipse,myeclipse,满满的回忆
代码半生,编码半世,ideacode失效,安装了eclipse,那熟悉的界面,俨然又回到了从前,当初我们还在用structs,eclipse,webwork,那时候还在用jbuilder,但是算是老套 ...
- IO多路复用epoll
0 why: 问题来源 0.1 网络编程流程 //创建socket int s = socket(AF_INET, SOCK_STREAM, 0); //绑定IP地址和端口号port bind(s, ...
- kubernetes 调度
pod 分配给特定的node节点 目的:在一般业务场景,有些pod需要运行在特定的物理节点上,可以通过kubernetes的nodeSelector.nodeName安排pod到指定的节点上运行. # ...
- 论文阅读 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS
14 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS link:https://scholar.google.com.hk/sc ...
- Apache Hudi数据跳过技术加速查询高达50倍
介绍 在 Hudi 0.10 中,我们引入了对高级数据布局优化技术的支持,例如 Z-order和希尔伯特空间填充曲线(作为新的聚类算法),即使在经常使用过滤器查询大表的复杂场景中,也可以在多个列而非单 ...