All Projects → BranSummer → Branroom

BranSummer / Branroom

webchat ,a site written in java with SSM framework,support blog post

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Branroom

Chat Room
一个普通的聊天室
Stars: ✭ 85 (+102.38%)
Mutual labels:  chatroom, websocket
Workerman Chat
Websocket chat room written in PHP based on workerman.
Stars: ✭ 988 (+2252.38%)
Mutual labels:  chatroom, websocket
Gochat
goim server write by golang !🚀
Stars: ✭ 1,144 (+2623.81%)
Mutual labels:  chatroom, websocket
Chat Room
使用GO+Vue构建的聊天室网站
Stars: ✭ 113 (+169.05%)
Mutual labels:  chatroom, websocket
Swoole Tadpole
tadpole chatroom (maybe spermium) powered by swoole and slim framework
Stars: ✭ 116 (+176.19%)
Mutual labels:  chatroom, websocket
Go Space Chat
【孤单Lonely】基于Golang/WebSocket/Canvas/Protobuf 的聊天室
Stars: ✭ 228 (+442.86%)
Mutual labels:  chatroom, websocket
Charroom
PHP + Swoole 聊天室
Stars: ✭ 125 (+197.62%)
Mutual labels:  chatroom, websocket
Happychat
基于Netty实现的WebSocket聊天室,支持几万人同时在线聊天
Stars: ✭ 445 (+959.52%)
Mutual labels:  chatroom, websocket
3d Snake
一个基于threejs的3d贪吃蛇游戏
Stars: ✭ 28 (-33.33%)
Mutual labels:  websocket
Examination system
一个简单的教务查询系统(主要技术SpringMVC + Spring + Mybatis + Shiro + Bootstrap)
Stars: ✭ 978 (+2228.57%)
Mutual labels:  ssm
Websocket Obs Java
A java library for the OBS-Studio websocket plugin by Palakis.
Stars: ✭ 28 (-33.33%)
Mutual labels:  websocket
Slipstream
A slick websocket client for Phoenix channels
Stars: ✭ 33 (-21.43%)
Mutual labels:  websocket
Graphql Rust Demo
GraphQL Rust Demo
Stars: ✭ 37 (-11.9%)
Mutual labels:  websocket
Citadelcore
Cross platform filtering HTTP/S proxy based on .NET Standard 2.0.
Stars: ✭ 28 (-33.33%)
Mutual labels:  websocket
Jiny
Lightweight, modern, simple JVM web framework for rapid development in the API era
Stars: ✭ 40 (-4.76%)
Mutual labels:  websocket
Hoppscotch
👽 Open source API development ecosystem https://hoppscotch.io
Stars: ✭ 34,569 (+82207.14%)
Mutual labels:  websocket
Remotelogcatviewer
websocket实现的远程查看android logcat
Stars: ✭ 35 (-16.67%)
Mutual labels:  websocket
Imbygo
一个基于melody+gin+goredis+gorm的websocket聊天架构,利用redis实现支持分布式部署
Stars: ✭ 21 (-50%)
Mutual labels:  websocket
Rtb
Benchmarking tool to stress real-time protocols
Stars: ✭ 35 (-16.67%)
Mutual labels:  websocket
Sockjs Client
WebSocket emulation - Javascript client
Stars: ✭ 7,808 (+18490.48%)
Mutual labels:  websocket

Branroom

Build Status

Instruction

This is a simple online chat site example, based on Websocket implementation, with basic user management capabilities.
This project is completed in my java web learning process, may be low and simple, but in the future of learning, I will continue to improve the site and add functionality

Basis

  • Language: Java
  • Framework:Spring+Spring MVC+mybatis
  • Front-end:Bootstrap
  • DBMS:MySQL
  • IDE: eclipse IDEA

网站模块

我的网站从功能上总共划分为用户模块 , 博客模块 , 在线聊天模块

  • 用户模块 : 其实用户系统对于个人网站来说是一块鸡肋,大多数的个人网站目前来说很少有用户功能的 , 毕竟很少有人会为了看几篇文章而专门为了一个小网站而去注册用户的 , 这样会损失很多的网站流量 , 得不偿失 . 然而我建设网站的初衷毕竟是为了学习,而且此网站并非是个人博客网站,而是一个博客平台 , 是面向用户发布博客的,而且另外一个在线聊天系统也需要依托用户系统的实现 , 因此用户模块是必要的 .
  • 博客模块 : 博客模块的重点在于前端实现 , 现阶段后台对于blog的处理还只是简单的CURD(今后会添加更多的功能和实现性能上的优化) , blog模块实现了网站的前后台分离 , 客户端通过ajax发起请求 , 服务端接受请求并返回json格式的报文 , 有客户端渲染生成页面 . blog的前台主要应用bootstarp,jquery等框架实现 , 特别地,网站blog支持markdown文档编写,主要应用了editor.md这个插件.
  • 在线聊天模块 :这个模块是独立于其他的web模块的,因为在线聊天是基于websocket来实现的 , websocket是独立于HTTP之外的TCP协议 . 在这个模块之中 , 接入一个图灵机器人的API , 做成了一个与可以机器人对话的窗口 .

技术架构

项目架构图

运行流程分析

以加载一个blog页面为例

  1. 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
  2. DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;
  3. DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;
  4. HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);
  5. ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;
  6. View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;
  7. 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

Web View

profile page

chat page

blog post

blog home

Update History

  • 2017-11-12 15:28:56
    Complete this document
  • 2017-11-24 14:11:49
    Add emoji picker
  • 2018-4-27 21:56:34
    Add blog module(supoting markdown)
    call turing robot API on chatting module
  • 2018-5-6 11:02:50
    User can edit their published blogs now
  • 2018-7-13 9:56:20
    add shiro support for security
  • 2018-9-11 20:23:20
    use cache with mybatis-redis
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].