3

开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行! - C...

 1 year ago
source link: https://www.cnblogs.com/justnow/p/16600781.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!

  GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端。(关于GG更详细的介绍,可以查看 可在广域网部署运行的QQ高仿版 -- GGTalk总览。

  这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产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%。

(5)支持高清视频聊天(1920*1080分辨率)。

  废话不多说,先上张GGTalk  8.0在银河麒麟系统上运行的截图:   

       

20404-20220819100413518-1381191017.jpg

二. 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 各个端所需的操作系统版本、运行时、开发环境、开发语言的详细说明如下列表所示:

20404-20220819152739115-438683836.png

  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的解决方案下的项目比较多,这里简单说明一下,如下图所示:

    

20404-20220819102316802-1692853079.png

     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)

   如果你觉得还不错,请点赞支持啊!谢谢。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK