All Projects → fsharechat → chat-server-release

fsharechat / chat-server-release

Licence: other
[飞享]-服务端发布版本,支持TCP,Websocket链接,只需修改少量的配置即可快速部署,请严格按照项目部署目录配置环境,这样能保证你快速部署成功.详情请进入官网https://www.fsharechat.cn 查看具体的部署说明,技术支持商业合作请找官方技术支持

Programming Languages

shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to chat-server-release

fastim
🚀基于Netty高可用分布式即时通讯系统,支持长连接网关管理、单聊、群聊、离线消息、消息推送消息、消息已读未读、消息未读数、红包、消息漫游等功能,支持集群部署的分布式架构。
Stars: ✭ 111 (+296.43%)
Mutual labels:  tcp, im
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-17.86%)
Mutual labels:  tcp, springboot
Rmessage
Reactive Programming Multi-protocol push service
Stars: ✭ 23 (-17.86%)
Mutual labels:  tcp, im
go-im
基于Golang编写的高性能im服务器 🚀
Stars: ✭ 220 (+685.71%)
Mutual labels:  tcp, im
Gochat
goim server write by golang !🚀
Stars: ✭ 1,144 (+3985.71%)
Mutual labels:  tcp, im
im-bass
基础IM通信
Stars: ✭ 56 (+100%)
Mutual labels:  tcp, springboot
fire-im
分布式IM服务,参考https://github.com/crossoverJie/cim 实现
Stars: ✭ 17 (-39.29%)
Mutual labels:  tcp, im
Mobileimsdk
一个原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架,支持iOS、Android、Java、H5,服务端基于Netty。
Stars: ✭ 3,864 (+13700%)
Mutual labels:  tcp, im
Easychatandroidclient
EasyChat是一个开源的社交类的App。主要包含消息、好友、群组等相关的IM核心功能。部分界面参照了QQ、微信等相关社交APP。EasyChat APP整体采用MVVM模式,基于JetPack(Lifecycle,LiveData,ViewModel,Room)构建
Stars: ✭ 64 (+128.57%)
Mutual labels:  tcp, im
Cim
📲cim(cross IM) 适用于开发者的分布式即时通讯系统
Stars: ✭ 8,109 (+28860.71%)
Mutual labels:  tcp, im
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+6967.86%)
Mutual labels:  tcp, im
T Io
解决其它网络框架没有解决的用户痛点,让天下没有难开发的网络程序
Stars: ✭ 1,331 (+4653.57%)
Mutual labels:  tcp, im
Gff
GFF is a imitation QQ communication project, based on high IOCP. GFF是模仿QQ通讯项目,通信基于SAEA.MessageSocket、SAEA.Http、SAEA.MVC实现
Stars: ✭ 162 (+478.57%)
Mutual labels:  tcp, im
spring-boot-angular6-maven-project
Build and package spring boot and angular6 into a deployable war file
Stars: ✭ 74 (+164.29%)
Mutual labels:  springboot
AndroidNetworkProgramming
Android网络编程实战总结,涉及HTTP、TCP、UDP常用协议。
Stars: ✭ 34 (+21.43%)
Mutual labels:  im
Limago
Limago: an FPGA-based Open-source 100 GbE TCP/IP Stack
Stars: ✭ 95 (+239.29%)
Mutual labels:  tcp
KingNetwork
KingNetwork is an open source library to facilitate the creation and communication of clients and servers via TCP, UDP, WebSocket and RUDP sockets.
Stars: ✭ 78 (+178.57%)
Mutual labels:  tcp
Socket
The Hoa\Socket library.
Stars: ✭ 61 (+117.86%)
Mutual labels:  tcp
spring-boot-mybatisplus-multiple-datasource
Spring Boot Mybatis Plus 多数据源
Stars: ✭ 64 (+128.57%)
Mutual labels:  springboot
Votes
LarkVote投票系统是一套基于规则的企业内部投票系统,由投票管理和投票端两部分组成,投票管理端包括投票创建、投票编辑、规则编辑、投票发起、投票项管理、邀请码生成、结束投票、投票结果统计等功能;投票端包括投票规则展示、投票操作、提交结果等功能。目前该项目还处于初级阶段,欢迎各位大神创建pull request。
Stars: ✭ 60 (+114.29%)
Mutual labels:  springboot

飞享服务端发布说明

  • windows server部署详情请参见点击这里

在部署之前,有必要对部署目录boot做一些说明

├── download #android客户端 Apk
│   └── chat-debug.apk
├── push-connector # 信令消息服务器目录,支持TCP,WSS链接
│   ├── jvm.ini #jvm参数配置
│   ├── lib
│   │   └── spring-boot-dubbo-push-connector-1.2.0-SNAPSHOT.jar
│   ├── logs # 日志
│   └── push-connector # 启动脚本
└── push-group # 业务相关逻辑服务,包括http登录接口
    ├── jvm.ini #jvm参数配置
    ├── lib
    │   └── spring-boot-web-push-group-1.2.0-SNAPSHOT.jar
    ├── logs # 日志
    └── push-group # 启动脚本

另外由于Java项目需要jdk支持,为了避免与系统其他jdk环境变量冲突,在shell脚本启动的时候,指定了jdk的目录.另外Dubbo需要注册中心支持,所以需要安装zookeeper.当然如果你们公司有现成的注册中心,可以直接配置不需要手动安装一套.因此我们推荐在Centos,/data施行如下的目录配置

├── boot //这里文件内容就是本项目的具体内容
├── jdk
└── zookeeper-3.4.6

NOTE: 由于jdkzookeeper文件过大,并没有把它们包含在项目中,本项目仅仅包括boot目录中内容,有人可能要问为什么要在/data 目录下放置如上的内容,下面展示一段shell命令.

  • push-connecotor脚本
# 如果是ubuntu系统,请将这里改为#!/bin/bash
#!/bin/sh
# 这里可以修改JAVA_HOME的路径
JAVA_HOME=/data/jdk

APP_NAME=$(basename "$0")
APP_DIR=/data/boot/${APP_NAME}
APP_VERSION_FILE=${APP_DIR}/version
APP_LIB=${APP_DIR}/lib
JVM_INI=${APP_DIR}/jvm.ini
JVM_INI_LOCAL=${APP_DIR}/../jvm.ini

NOTE: 如果是ubuntu系统,请将这里改为#!/bin/bash

NOTE: 上面指定了JAVA_HOME 目录在/data/jdk.当然你可以把jdk防止在任意位置,只要指定其具体位置就可以,或者你也可以修改脚本,只需要配置java环境变量即可.一切都是为了配置基础的运行环境,如果你熟悉java环境,你可以随时配置

部署说明

前置安装说明

centos 环境准备

yum install nc

minio配置

  • 安装
  • 创建不同的bucket用于存储不同的文件类型
    public static String MINIO_BUCKET_GENERAL_NAME = "minio-bucket-general-name";
    public static String MINIO_BUCKET_IMAGE_NAME = "minio-bucket-image-name";
    public static String MINIO_BUCKET_VOICE_NAME = "minio-bucket-voice-name";
    public static String MINIO_BUCKET_VIDEO_NAME = "minio-bucket-video-name";
    public static String MINIO_BUCKET_FILE_NAME = "minio-bucket-file-name";
    public static String MINIO_BUCKET_PORTRAIT_NAME = "minio-bucket-portrait-name";
    public static String MINIO_BUCKET_FAVORITE_NAME = "minio-bucket-favorite-name";

minio-bucket

  • 权限设置

NOTE: 所有的bucket都按照如下进行设置

minio-bucket

下载完整安装包

NOTE: 下载完成后,请将压缩文件解压到/根目录下即可,注意上面的命令行都是以这个目录为标准的,切忌不要随意放置

下载部署服务

NOTE: 由于github仓库限制以及网络问题,不便上传.当你下载完下面两个服务jar包,分别放到相应服务的lib目录下,请选择以下最新版本下载

push-connector服务

push-group服务

参数配置

目前仅有两个服务启动既可运行,参数配置仅需关心,各个目录下config即可,你需要配置下面的文件即可,具体在每个服务的config目录下

push-connector

# wss ssl 配置,这里配置jks需要指定其绝对路径地址,不启用wss 请将这里设置为空,即表示不启用wss,使用ws.本地部署可以考虑暂时不启用wss
push.ssl.keystore=/data/boot/push-connector/config/chat.comsince.cn.jks
push.ssl.truststore=/data/boot/push-connector/config/chat.comsince.cn.trustkeystore.jks
push.ssl.password=123456
## Dubbo Registry
dubbo.registry.address=zookeeper://zookeeper:2181

## kafka broker 暂时不建议使用集群,单击部署可暂时不用配置
#push.kafka.broker=kafka:9092

## kurento client url,群组音视频服务
kurento.clientUrl=ws://media.comsince.cn:8888/kurento

## minio url
minio.url=https://media.comsince.cn
## minio access_key
minio.access_key=
## minio secret_key
minio.secret_key=

push-group

## Dubbo 注册中心
dubbo.registry.address=zookeeper://zookeeper:2181


#云短信厂商,1:代表阿里云短信 2: 代表腾讯云短信.如果没有短信服务,可暂时不用配置,使用超级验证码登录
sms.cp=2
# 应用id
sms.appid=LTAI4Ff1jtqrSr3rkHMKEnfs
# 应用key
sms.appkey=gG33mvmMAxGYol7Vd1AEG6InRK9VCD
# 模板id
sms.templateId=SMS_180355435
# 短信签名由于编码问题,请到相应的代码里面设置

# 短信超级验证码,正式上线请修改
sms.superCode=6666

# 是否使用内置数据库 1: 表示使用 0: 使用mySql
im.embed_db=0
# jdbc url
im.jdbc_url=jdbc:mysql://mysql:3306/fsharechat?useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8
# mysql数据库访问用户名
im.user=root
#mysql数据库访问密码
im.password=123456

jvm.ini 参数配置

NOTE: 由于我的线上服务器使用的内存比较小,所以对push-connector,push-group的jvm参数做了调整.所以以下内存参数配置,可以根据自己实际机器的配置修改

-Xmx300m  最大使用内存
-Xms300m  最小使用内存
-Xmn100m  新生代内存

启动服务

./push-group/push-group start
./push-connector/push-connector start

客户端

vue 客户端配置

  • 配置文件 vue-chat\src\constant\index.js
  //ws 协议配置
  //export const WS_PROTOCOL = 'wss';
  export const WS_PROTOCOL = 'ws';
  
  //websocket 服务地址  
  //export const WS_IP = 'github.comsince.cn';
  export const WS_IP = 'localhost';
    
  //登录接口服务配置,本地部署可以不启用https  
  //export const HTTP_HOST = "https://"+WS_IP + ":8443/"
  export const HTTP_HOST = "http://"+WS_IP + ":8081/"
  • 编译
npm run build

android 客户端

  • 配置文件在chat工程下的config.java
//IM server 即是push-connector服务地址
    String IM_SERVER_HOST = "chat.comsince.cn";
    int IM_SERVER_PORT = 6789;

//push-group服务地址
    String APP_SERVER_HOST = "chat.comsince.cn";
    int APP_SERVER_PORT = 8081;
  • 编译APK

NOTE: 编译前请确保Android SDK配置正确

./gradlew clean assembleDebug
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].