官方文档:WebSocket Support
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html
WebSocket结合hibernate+spring+json 实际经验 http://www.cnblogs.com/lucious/archive/2013/06/05/3118394.html
Spring Framework 4.0 M2 中的 WebSocket 消息架构 http://www.oschina.net/translate/spring-framework-4-0-m2-websocket-messaging-architectures
Spring 4.0 中的WebSocket 架构 http://developer.51cto.com/art/201311/418069.htm
spring4 + WebSocket笔记 http://blog.csdn.net/sl543001/article/details/19343005
基于Tomcat7、Java、WebSocket的服务器推送聊天室 http://blog.csdn.net/leecho571/article/details/9707497

Using websockets in Java using Spring 4 http://syntx.io/using-websockets-in-java-using-spring-4/
STOCK TICKER DEMO WEBAPP USING SPRING 4 WEBSOCKET http://gerrydevstory.com/2014/03/04/stock-ticker-demo-webapp-using-spring-4-websocket/
Using Spring 4 WebSocket, sockJS and Stomp support to implement two way server client communication
http://raymondhlee.wordpress.com/2014/01/19/using-spring-4-websocket-sockjs-and-stomp-support-to-implement-two-way-server-client-communication/
Set up a full broker for Spring 4 STOMP over WebSocket messaging using ActiveMQhttp://raymondhlee.wordpress.com/2014/04/12/set-up-a-full-broker-for-spring-4-stomp-over-websocket-messaging-using-activemq/

spring-websocket-portfolio源码 https://github.com/rstoyanchev/spring-websocket-portfolio

WebSocket的JavaScript例子 http://www.xyhtml5.com/websocket-javascript-example.html

默认配置:

自定义配置:

The “STOMP broker relay” in the above configuration is a Spring MessageHandler that handles messages by forwarding them to an external message broker. To do so it establishes TCP connections to the broker, forwards all messages to it, and reversely forwards all messages received from the broker to clients through their WebSocket sessions. Essentially it acts as a “relay” forwarding messages in both directions.

一个例子的源码
附件是两个用到的两个js
web.xml
========================================

log4j.xml
===================================

log4j.properties
===========================================
log4j.rootCategory=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

log4j.appender.stdout.Threshold=trace
log4j.category.org.hibernate.SQL=trace
log4j.category.org.hibernate.type=trace

# log4jdbc
log4j.logger.jdbc.sqlonly=INFO
log4j.logger.jdbc.sqltiming=INFO
log4j.logger.jdbc.audit=OFF
log4j.logger.jdbc.resultset=OFF
log4j.logger.jdbc.connection=OFF

jdbc.properties
==========================================
#mysql
#jdbc.dataSource=org.logicalcobwebs.proxool.ProxoolDataSource
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/jbpmtest?useUnicode=true&characterEncoding=utf8
#log4jdbc
jdbc.dataSource=org.springframework.jdbc.datasource.DriverManagerDataSource
jdbc.driver=net.sf.log4jdbc.DriverSpy
jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/jbpmtest?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
sqlserver 2008
#jdbc.dataSource=com.alibaba.druid.pool.DruidDataSource
#jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=jbpmtest
#jdbc.username=sa
#jdbc.password=sa

proxool.alias=ds
proxool.prototypeCount=2
proxool.minimumConnectionCount=5
proxool.maximumConnectionCount=20
proxool.houseKeepingTestSql=select 1

applicationContext.xml
========================================

applicationContext-spring.xml
==========================================

springmvc-servlet.xml
======================================

三个domain
==============================================

两个服务器处理信息的controller
==========================================

两个测试客户端
index.jsp
================================================

hello.jsp
=================================================

附加:pom.xml
===================================