## Overview
A sample demonstrating capabilities in the Spring Framework to build WebSocket-style messaging applications. The application uses [STOMP](http://stomp.github.io/) (over WebSocket) for messaging between browsers and server and [SockJS](https://github.com/sockjs/sockjs-protocol) for WebSocket fallback options.
Client-side libraries used:
* [stomp-websocket](https://github.com/jmesnil/stomp-websocket/)
* [sockjs-client](https://github.com/sockjs/sockjs-client)
* [Twitter Bootstrap](http://twitter.github.io/bootstrap/)
* [Knockout.js](http://knockoutjs.com/)
Server-side runs on `Tomcat 7.0.47+`, `Jetty 9.0.7+`, or `Glassfish 4.0`. Other servlet containers should also function correctly via fallback options (assuming Servlet 3.0) but they don't support WebSocket yet.
Also see the [blog post](http://blog.springsource.org/2013/07/24/spring-framework-4-0-m2-websocket-messaging-architectures/) introducing these features.
### Tomcat 7/8
The app has been tested with this `Tomcat 8 RC10` as well as `Tomcat 7.0.47` which includes a backport of the Tomcat 8 WebSocket support.
For Tomcat 8, set `TOMCAT8_HOME` as an environment variable and use [deployTomcat8.sh](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/deployTomcat8.sh) and [shutdownTomcat8.sh](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/shutdownTomcat8.sh) in this directory.
For Tomcat 7, you can use `mvn tomcat7:run`.
Open a browser and go to <http://localhost:8080/spring-websocket-portfolio/index.html>
### Jetty 9
The easiest way to run on Jetty 9 is `mvn jetty:run`.
Open a browser and go to <http://localhost:8080/spring-websocket-portfolio/index.html>
**Note:** To deploy to a Jetty installation, add this to Jetty's `start.ini`:
OPTIONS=plus
etc/jetty-plus.xml
OPTIONS=annotations
etc/jetty-annotations.xml
### Glassfish
After unzipping Glassfish 4 start the server:
<unzip_dir>/glassfish4/bin/asadmin start-domain
Set `GLASSFISH4_HOME` as an environment variable and use [deployGlassfish.sh](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/deployGlassfish.sh) in this directory.
Open a browser and go to <http://localhost:8080/spring-websocket-portfolio/index.html>
### WildFly/Undertow
Support available startin with Spring Framework 4.0.1. Requires WildFly 8.0.0.Final.
Unzip the WildFly server.
Set `WILDFLY_HOME` as an environment variable and use [deployWildFly.sh](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/deployWildFly.sh) in this directory.
Open a browser and go to <http://localhost:8080/spring-websocket-portfolio/index.html>
### Using a Message Broker
Out of the box, a _"simple" message broker_ is used to send messages to subscribers (e.g. stock quotes) but you can optionally use a fully featured STOMP message broker such as `RabbitMQ`, `ActiveMQ`, and others, by following these steps:
1. Install and start the message broker. For RabbitMQ make sure you've also installed the [RabbitMQ STOMP plugin](http://www.rabbitmq.com/stomp.html). For ActiveMQ you need to configure a [STOMP transport connnector](http://activemq.apache.org/stomp.html).
2. Use the `MessageBrokerConfigurer` in [WebSocketConfig.java](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/src/main/java/org/springframework/samples/portfolio/config/WebSocketConfig.java) to enable the STOMP broker relay instead of the simple broker.
3. You may also need to configure additional STOMP broker relay properties such as `relayHost`, `relayPort`, `systemLogin`, `systemPassword`, depending on your message broker. The default settings should work for RabbitMQ and ActiveMQ.
### Logging
To see all logging, enable TRACE for `org.springframework.messaging` and `org.springframework.samples` in [log4j.xml](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/src/main/resources/log4j.xml).
Keep in mind that will generate a lot of information as messages flow through the application. The [QuoteService](https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/src/main/java/org/springframework/samples/portfolio/service/QuoteService.java) for example generates a lot of messages frequently. You can modify it to send quotes less frequently or simply comment out the `@Scheduled` annotation.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
websocket-demo.zip (93个子文件)
gs-messaging-stomp-websocket
.gitignore 24B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 237B
.project 580B
.mvn
wrapper
maven-wrapper.jar 48KB
maven-wrapper.properties 111B
pom.xml 2KB
build.gradle 844B
mvnw 7KB
target
test-classes
hello
classes
log4j.properties 870B
static
app.js 1KB
main.css 284B
index.html 2KB
hello
gradlew.bat 2KB
.settings
org.eclipse.core.resources.prefs 155B
org.eclipse.jdt.core.prefs 243B
org.eclipse.m2e.core.prefs 90B
gradlew 5KB
src
test
java
hello
GreetingIntegrationTests.java 5KB
main
resources
log4j.properties 870B
static
app.js 1KB
main.css 284B
index.html 2KB
java
hello
Greeting.java 262B
Application.java 309B
WebSocketConfig.java 918B
GreetingController.java 523B
HelloMessage.java 330B
mvnw.cmd 5KB
.classpath 1KB
spring-websocket-portfolio
deployGlassfish.sh 322B
.gitignore 80B
.project 1KB
README.md 4KB
pom.xml 11KB
target
test-classes
log4j.detailed 1KB
org
springframework
samples
portfolio
web
support
load
context
standalone
tomcat
log4j.xml 1KB
m2e-wtp
web-resources
META-INF
maven
org.springframework.samples
spring-websocket-portfolio
pom.xml 11KB
pom.properties 286B
dependency-maven-plugin-markers
tmp
jsp
classes
org
springframework
samples
portfolio
web
config
service
log4j.xml 1KB
.settings
.jsdtscope 575B
org.eclipse.core.resources.prefs 103B
org.eclipse.wst.common.component 892B
org.eclipse.wst.validation.prefs 50B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
shutdownTomcat8.sh 131B
src
test
resources
log4j.detailed 1KB
log4j.xml 1KB
java
org
springframework
samples
portfolio
web
README.md 497B
support
TomcatWebSocketTestServer.java 4KB
JettyWebSocketTestServer.java 2KB
WebSocketTestServer.java 1KB
TestPrincipal.java 1KB
load
StompWebSocketLoadTestServer.java 7KB
StompBrokerRelayLoadApp.java 12KB
StompWebSocketLoadTestClient.java 11KB
context
ContextPortfolioControllerTests.java 9KB
TestChannelInterceptor.java 2KB
standalone
TestMessageChannel.java 1KB
TestTradeService.java 1KB
StandalonePortfolioControllerTests.java 7KB
tomcat
IntegrationPortfolioTests.java 13KB
main
resources
log4j.xml 1KB
java
org
springframework
samples
portfolio
Portfolio.java 2KB
web
PortfolioController.java 3KB
UserController.java 2KB
config
WebSocketConfig.java 1KB
WebConfig.java 1KB
DispatcherServletInitializer.java 1KB
WebSecurityConfig.java 2KB
WebSecurityInitializer.java 1KB
service
TradeServiceImpl.java 4KB
TradeService.java 770B
PortfolioServiceImpl.java 2KB
QuoteService.java 4KB
Trade.java 2KB
PortfolioService.java 843B
Quote.java 1KB
PortfolioPosition.java 2KB
webapp
static
css
login.css 804B
portfolio.css 587B
js
controllers.js 5KB
app.js 123B
services.js 4KB
login.html 1KB
index.html 5KB
deployWildFly.sh 323B
.classpath 1KB
deployTomcat8.sh 293B
共 93 条
- 1
资源评论
- wenzhen_csdn2018-09-27请大家不要下载了
- weixin_344767642018-03-21还可以,值得参考
- slienmeng2017-04-06还可以,值得参考
- littlesprouts2018-05-30感谢分享,学习了
冥王•雷利
- 粉丝: 0
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- base.apk
- Vue 结合 D3.js 进行数据可视化开发的练手案例.zip
- 语音模块使用说明_jr6001调试工具.html
- 毕业设计-reat18货物运输后台管理系统
- Qt tcp通信(exe)
- tensorflow-gpu-2.7.3-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-2.8.0-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.4-cp39-cp39-manylinux2010-x86-64.whl
- HTML后台管理系统源49套合集 H5模板源码下载 总有一款适合你 静态页面
- DDColor-PDF文献
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功