基于 JavaFX 开发的聊天客户端 OIM-即时通讯

article/2025/10/25 22:08:47

OIM 详细介绍

一、简介

    OIM是一套即时通讯的聊天系统,在这里献给大家,一方面希望能够帮助对即时通讯有兴趣研究的朋友,希望我们能够共同进步,另一个就是希望能够帮助到需要即时通讯系统的朋友或者企业,可以直接使用或者二次开发。可以用于公司内网、外网通讯、客服系统等,聊天系统。OIM项目可用于任何商业、个人作品中并且希望能够保留作者信息。如果OIM能够帮助到您,请点赞好评,加个星。

  1. 主开发语言:OIM主要采用Java语言开发。整个项目分为服务端和客户端,服务端主要实现了TCP Socket和WebSocket接入方式。方便接入网页版、安卓、IOS、PC桌面版客户端,以便自己开发所需要的客户端。
  2. 已经实现的客户端:目前已经实现了桌面版客户端和Web客户端,桌面版客户端采用JavaFX实现,可以跨平台在Windows、Mac、Linux三大主流系统使用。

二、服务端

服务端说明:
a)主框架:Spring、Spring MVC、Hibernate
b)数据库:MySQL
c)通讯框架:Netty
d)数据传输:Json

三、客户端

  1. PC客户端
    a)GUI:主要使用JavaFX,支持跨平台Windows、Mac、Linux主流系统
    b)视频:JavaCV调研摄像头,FFmpeg推流
    c)嵌入数据库:H2
  2. Web客户端
    a)通信:WebSocket
    b)框架:jQuery

当前实现的功能:

1、个人信息方面

  • 注册登录

  • 个人详细资料修改

  • 自定义头像

2、好友管理

  • 查询用户添加好友

  • 好友分组新建修改

  • 删除好友

3、群组管理

  • 群分组新建修改

  • 群查询并加入

  • 新建群、修改资料

4、聊天功能:群聊和私聊

聊天支持的消息类型:

  • 文本消息

  • 表情

  • 图片

  • 文件发送

  • 支持视频聊天

  • 远程控制



    PC客户端截图

 



 


Web客户端截图





 


http://chatgpt.dhexx.cn/article/0sCL2pWE.shtml

相关文章

electron-builder打包linux桌面程序(OIM-E多平台即时通讯软件)

1、OIM-E 开源主页 主页链接 2、打包Linux 开始踩了几个坑,我图简单因此尝试在windows打包linux包。结果就是不行,梯子啥的都挂了,结果无效。报如下错误: ⨯ Get https://service.electron.build/find-build-agent?no-cache1…

oim failed_对OIM Web(UI)层进行压力测试

oim failed Oracle IDM中的默认配置保留20个专用于服务前端(UI)请求的线程。 从根本上讲,这意味着应用程序服务器具有20个线程池,可用于为通过Web控制台(/ identity或/ sysadmin)访问OIM的用户提供服务。 对于Weblogic ,这是它的配置方式&…

oim(类QQ)开源项目源码阅读笔记(1)——登录部分

oim项目是码云上相当优秀的开源项目,项目完整,有客户端,服务器端web端,项目地址:https://gitee.com/oimchat 因为最近打算使用javafx写个客户端,所以看了一下该项目基于java的pc客户端源码,客户端项目如下…

聊聊开源聊天软件oim-fx

最近忽然要开发聊天软件,上网百度学习了一下。先是找到一些socket编程的文章。后来,在博客园找到这篇文章,得到一些启示:《超赞的8款开源聊天软件》 https://blog.csdn.net/huaairen/article/details/89006927 今天有点时间&…

java实例化对象的四种方式

java实例化对象的4种方式 用new 语句创建对象,这是最常用的创建对象方法。 package test;public class Father {public void print() {System.out.println("我是father");} public static void main(String[] args) {Father f new Father();f.print();…

java实例化对象的几种方式

这里一共整理了四种方法 ①用类的new ()创建 ②用clone方法创建, 需要类实现 Cloneable 接口 ③通过反射机制创建 ④将一个对象实例化后,进行序列化,再反序列化 下面是实现代码 1)用类的new &#xff…

详解C#实例化对象的三种方式及性能对比

前言 做项目过程中有个需求要实例化两万个对象并添加到List 中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录。 首先想到的是可能实例化比较耗时,于是开始对每种实例化方式…

父类声明子类实例化对象详解

测试代码: public class Employee {public String name;public String getType(){return "Employee";}} public class Manager extends Employee{private int money;public String getType(){return "Manager";} }public static void main(St…

java实例化对象后面添加花括号的理解分析

java实例化对象后面添加花括号的理解分析 昨天在看MyBatis官方文档时看到这么一段代码 return new SQL() {{SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FIRST_NAME, P.LAST_NAME");FROM("PERSON P");if (id ! null) {WHERE("P.ID like #{id}");}…

Unity 创建/实例化对象

在程序运行过程中创建、实例化对象物体需要用到Object类中的 Instantiate 函数,例如,我们场景中有一个物体A: 现在我们想要在场景中创建五个该物体,则用Instantiate函数将该物体作为参数传入: using UnityEngine;pu…

几种对象实例化方式详解

一)对象实例化常用方式 方式一:直接new一个对象,最常用的一种。 方式二:反射,通过Class.forName("类的全限定名")。 方式三:构造器,通过Class.forName("类的全限定名")&…

yolov5剪枝 实战

(1)步骤 剪枝的一般步骤只是在正常训练的后面加上了稀疏化训练和剪枝的步骤。 (2)稀疏化训练 主要区别 稀疏化训练的代码和正常训练的代码的差别主要体现在 ①反向传播 ②优化器 ③parse_opt代码 接下来从代码执行训练简单分析…

Spark 推测执行(speculative)

一 speculative简介 在spark作业运行中,一个spark作业会构成一个DAG调度图,一个DAG又切分成多个stage,一个stage由多个Task组成,一个stage里面的不同task的执行时间可能不一样,有的task很快就执行完成了,…

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践 文章目录 INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践结构稀疏量化在 TensorRT 中部署稀疏量化模型的工作流程案例研究:ResNet-34要求第 1 步:…

非引导方法深度补全系列——1—— 《Sparsity invariant cnns》文章细读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 创新点 论文概述 方法详解 网络结构: 杂七杂八 总结 参考 创新点 1.提出了一种稀疏卷积层,在卷积过程中使用二进制有效性掩码来指示缺失…

模型剪枝三:Learning Structured Sparsity in Deep Neural Networks

论文:https://arxiv.org/abs/1608.03665 代码:https://github.com/wenwei202/caffe/tree/scnn 1 核心思想 前面两篇文章https://blog.csdn.net/cdknight_happy/article/details/110953977和https://blog.csdn.net/cdknight_happy/article/details/1110…

Exploring Sparsity in Image Super-Resolution for Efficient Inference

目录 原文翻译 Abstract 1. Introduction 2. Related Work 4. Our SMSR Network 4.1. Sparse Mask Generation 4.2. Sparse Mask Convolution 5. Experiments 5.1. Implementation Details 5.2. Model Analysis 5.3. Comparison with State-of-the-art Methods Conclusion …

稀疏大模型简述:从MoE、Sparse Attention到GLaM

文 | 唐工源 | 知乎 Sparsity, ..., is another important algorithmic advance that can greatly improve efficiency. 稀疏性,是(神经架构搜索)之外另一个重要的算法进步,可以大大提高效率。 The use of sparsity in models is…

Sparse Learning

Sparse Learning 本文的内容主要来自余凯老师在CVPR2012上给的Tutorial。前面在总结ScSPM和LLC的时候,引用了很多Tutorial上的图片。其实这个Tutorial感觉写的挺好的,所以这次把它大致用自己的语言描述一下。不过稀疏编码是前两年比较火的东西&#xff0…

理解sparse coding

稀疏编码系列: (一)----Spatial Pyramid 小结(二)----图像的稀疏表示——ScSPM和LLC的总结(三)----理解sparse coding(四)----稀疏模型与结构性稀疏模型 -------------…