All Projects → ccfish86 → Sctalk

ccfish86 / Sctalk

Licence: apache-2.0
基于spring cloud + Netty实现的聊天,兼容蘑菇街TeamTalk客户端,配合hazelcast提供消息服务器集群功能,同时支持socket和websocket.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Sctalk

Tesla
Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.
Stars: ✭ 161 (+5.23%)
Mutual labels:  spring-cloud, netty4
Spring Boot Demo
Spring Boot & Spring Cloud & Spring Security Demo Case(Spring学习示例实战项目)
Stars: ✭ 255 (+66.67%)
Mutual labels:  spring-cloud, websocket
Java Spring Cloud
Distributed tracing for Spring Boot, Cloud and other Spring projects
Stars: ✭ 326 (+113.07%)
Mutual labels:  spring-cloud, websocket
Spring Cloud Open Service Broker
Spring Cloud project for creating service brokers that conform to the Open Server Broker API specification
Stars: ✭ 140 (-8.5%)
Mutual labels:  spring-cloud
Zenrpc
JSON-RPC 2.0 Server Implementation with SMD support written in Go (go generate)
Stars: ✭ 140 (-8.5%)
Mutual labels:  websocket
Websocket
WSServer is a fast, configurable, and extendable WebSocket Server for UNIX systems written in C (C11).
Stars: ✭ 144 (-5.88%)
Mutual labels:  websocket
Grpc Spring Boot Starter
Spring Boot starter module for gRPC framework.
Stars: ✭ 2,190 (+1331.37%)
Mutual labels:  spring-cloud
Raincat
强一致分布式事务框架
Stars: ✭ 1,785 (+1066.67%)
Mutual labels:  spring-cloud
Ws Examples
Examples of using github.com/gobwas/ws
Stars: ✭ 148 (-3.27%)
Mutual labels:  websocket
Javadevjournal
Source code for the tutorials published on the Javadevjournal site.
Stars: ✭ 141 (-7.84%)
Mutual labels:  spring-cloud
Microservice
microservice with springcloud and docker
Stars: ✭ 142 (-7.19%)
Mutual labels:  spring-cloud
Fleck
C# Websocket Implementation
Stars: ✭ 1,869 (+1121.57%)
Mutual labels:  websocket
Spring Microservice Exam
硕果云,基于Spring Cloud搭建的新一代微服务教学管理平台,提供多租户、权限管理、考试、练习等功能,题型支持单选题、多选题、不定项选择题、判断题、简答题,二维码分享,移动端答题等
Stars: ✭ 146 (-4.58%)
Mutual labels:  spring-cloud
Spring Cloud Dataflow Ui
This repo provides the Dashboard application of Spring Cloud Data Flow
Stars: ✭ 140 (-8.5%)
Mutual labels:  spring-cloud
Obs Websocket
Remote-control of OBS Studio through WebSocket
Stars: ✭ 2,425 (+1484.97%)
Mutual labels:  websocket
Ember Phoenix
Phoenix Framework integration and tooling for Ember.js apps
Stars: ✭ 140 (-8.5%)
Mutual labels:  websocket
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (-4.58%)
Mutual labels:  netty4
Cloud Book
《Spring Cloud 微服务架构进阶》各章节附录源码
Stars: ✭ 142 (-7.19%)
Mutual labels:  spring-cloud
My Moments
Instagram Clone - Cloning Instagram for learning purpose
Stars: ✭ 140 (-8.5%)
Mutual labels:  spring-cloud
Webchat
🔈 Websocket project based on vue(基于vue2.0的实时聊天项目)
Stars: ✭ 1,856 (+1113.07%)
Mutual labels:  websocket

索引

概述

当前项目是由蘑菇街的TeamTalk协议,完全用JAVA生态重构而成。以用于线上业务使用,并适当进行了调整,基本上还是与原Teamtalk协议保持兼容。

大家在开发过程中遇到问题,请提交到issues。 具体文档见doc目录下,安装之前请仔细阅读相关文档。

线上测试地址:

  • 登录服务器http://tt.hifipi.com/msg_server 用户名密码 10~99
  • 管理后台

联系方式:

开源及环境说明

免责声明

该项目是个人维护,尽量继续维护下去,此外代码借鉴了部分开源项目

本项目完全免费使用,相关问题皆免费提供解答(任何收费行为皆为假冒),暂不接受定制开发。

本人不对使用此代码所造成的损失承担连带责任。

当然如果引用的第三方开源代码,侵犯了您的权益,请及时联系,会在第一时间删除。

环境

本项目中的服务器环境,使用JDK8 + PostgreSQL/MySQL + Redis + minio(图片及语音消息使用) + nginx。

内存2G以上即可,对系统其他组件的版本无要求。

项目更新

2018-02-08 支持websocket,可与现APP互通。 web端地址:teamtalk_websocket_client

websocket使用客户端:xiaominfc/teamtalk_websocket_client

版本[0.1.0-RELEASE]使用了router-server作为消息中转服务(这点跟原TT是相似的),0.2以后将使用hazelcast等分布式中间件取代router-server来处理消息的“路由”。

取消“router-server”,更多的是为了解决路由服务的单点故障的问题,之后会追加zuul来对外提供服务。

2017-12-15 更新内容:

第一步是把router删除,把关键的msgServerManager,userClintInfoManager等功能(服务/用户在线管理)重新调整,用hazelcast的分布式map来修改了一下。

然后把router<>msg的处理分了几种情况,如:请求用户在线状态的,现在直接可以通过hazelcast#map本地处理。本地处理不了的,通过hazelcast#topic发布到其他msg-server上分别处理。

现在,已基本实现了功能,有条件的话,对于某些访问比较集中的消息类型还可以做以下优化:

  • 先通过map把需要处理该的msg服务给查出来,然后只发布到这些个msg服务。
  • 一些处理,可以通过hazelcast#ExecutorService直接处理

项目说明

项目主要有以下几部分:

  1. spring cloud相关的服务,如:eureka
  2. 底层基础设施,数据库(支持postgresql和mysql,或者其他),redis
  3. message-server消息服务,DB-proxy服务。由于采用了hazelcast来处理了一些集群方面的东西,可以支持message-server多服务器,甚至message-server(socket)和message-server(websocket)互通
  4. 正在处理webrtc的视频通话,希望有生之年可以搞定:-)

签于本站坑爹的字数限制,再唠叨几句。

原Teamtalk(下面简称TT)的架构和功能就不详细介绍了,说点不一样的。

  • 开发第一版的时候,跟TT一样有message-server、router-server和db-proxy,并且达到了多message-server相通的效果。后续接触到了hazelcast,并试着把router-server用topic和excuteService给取代了。
  • 在开发db-proxy时,用了hibernate,然后顺便把字段名给调整了下。
  • 把一些表的主键(ID),由Integer改为了Long,以避免数据量大时会超过Integer的上限。
  • 同时支持socket和websocket连接,并能互发消息。
  • 整理了一些TT相关的第三方开源项目,并做了测试服务器。

关联项目

[蘑菇街Teamtalk] (https://github.com/meili/TeamTalk)

[Teamtalk之Java版管理后台] (https://github.com/Seeyouenough/TeamTalkOverwrite)

[Teamtalk之Web版前台] (https://github.com/xiaominfc/teamtalk_websocket_client)

[Teamtalk之Node版前台] (https://gitee.com/mayuehehe/rapido/tree/master/)

关联QQ群

TeamTalk交流群: 462424781 TeamTalk第一小队: 419850589

关于打赏

尽管你是否打赏并不影响我更新及相关问题的解答,如果你的确任性+土豪,那就来吧。 支付宝

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].