前面两篇文章都在说protobuf,这里说下我使用的服务器环境:
jetty-distribution-9.1.0.v20131115 + JDK7 + protobuf 2.5.0 +apache-maven-3.1.1
首先需要编译protobuf的java库文件,具体请参考protobuf目录下的java/README.txt文件
生成java用的protobuf文件的方法请参考官方文档
1.说下jetty下的websocket是如何实现的,新建TestWebSocket实现WebSocketListener接口:
public class TestWebSocket implements WebSocketListener {
@Override
public void onWebSocketBinary(byte[] payload, int offset, int len) {
System.out.println("receive message binary ...");
try {
Test.Message msg = Test.Message.parseFrom(payload);
switch(msg.getId()){
case 101:
Test.Person person = Test.Person.parseFrom(msg.getData().getBytes());
System.out.println(person.getId());
System.out.println(person.getName());
System.out.println(person.getEmail());
break;
}
} catch (InvalidProtocolBufferException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onWebSocketClose(int statusCode, String reason) {
System.out.println("socket closed. status code:" + statusCode
+ " reason:" + reason);
}
@Override
public void onWebSocketConnect(Session session) {
System.out.println("new connect ...");
}
@Override
public void onWebSocketError(Throwable error) {
System.out.println("error...");
}
@Override
public void onWebSocketText(String message) {
System.out.println("receive message text ...");
}
}
2.新建WebSocketTestServlet类集成WebSocketServlet类:
public class WebSocketTestServlet extends WebSocketServlet {
private static final long serialVersionUID = -2964802839253009970L;
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(TestWebSocket.class);
}
}
3.Main方法:
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new WebSocketTestServlet()), "/web");
server.start();
server.join();
}
4.运行即可启动服务器进行测试。
另外贴上我使用的test.proto文件的内容(前面两个文档用的都是这个文件来做的测试):
package cn.wey.test;
message Message {
required int32 id = 1;
optional string data = 2;
}
message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
}
分享到:
相关推荐
java运行依赖jar包
使用jetty实现websocket功能,jetty已经集成了websocket的标准方法。
Maven坐标:org.eclipse.jetty.websocket:websocket-api:9.4.11.v20180605; 标签:eclipse、jetty、websocket、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
4、org.eclipse.jetty.websocket.api_9.1.1.v20140108.jar 5、org.eclipse.jetty.websocket.client_9.1.1.v20140108.jar 6、org.eclipse.jetty.websocket.common_9.1.1.v20140108.jar 解压后将这些jar包拷贝到Jmeter...
jetty-websocket
websocket+tomcat+jetty+netty
Maven坐标:org.eclipse.jetty.websocket:websocket-api:9.4.43.v20210629; 标签:eclipse、jetty、websocket、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,...
您可以将2种与Jetty一起使用的API,本机WebSocket API和javax.websocket API。 项目:javax.websocket-example 演示如何使用javax.websocket API创建WebSocket客户端或WebSocket服务器。 项目:native-jetty-...
Spring-Boot-Jetty-WebSocket-示例 这是如何使用Spring Boot配置Jetty WebSocket的基本示例。 有关更多信息,请阅读我的博客文章-
基于jetty8的聊天工具,不需要服务器能够和数据库交互的的可以忽略dbUtil
Jetty WebSocket 客户端一个简单的基于 Jetty 9.2.x 的 WebSocket 客户端,它只记录连接的服务器发送给它的任何内容。先决条件Maven 3.x Java >= 1.7跑步 mvn java:exec -Dexec.args="-s ws[s]://host:port/path/to/...
用jetty8.0写的websocket实现的简单聊天程序,供大家一起共同分享学习。
此代码基于此处找到的WebSocket教程: ://jansipke.nl/websocket-tutorial-with-java-server-jetty-and-javascript-client/ 有些人(包括我自己在内)认为注释是黑魔法,只能掩盖实际情况。 我想要清楚地了解正在...
基于 Jetty 的 WebSocket 服务器和 Java 和 JavaScript 客户端的简单示例。
org.eclipse.jetty.websocket.api_9.1.1.v20140108.jar org.eclipse.jetty.websocket.client_9.1.1.v20140108.jar org.eclipse.jetty.websocket.common_9.1.1.v20140108.jar 说在最后,本来想免费提供给大家的,但...
jetty html5 websocket服务器
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
一、jmeter-plugins-manager-1.3.jar资源插件管理器,放入lib/ext目录 二、websocket依赖包 1.JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar 放入...7.org.eclipse.jetty.websocket.common_9.1.1.v20140108.jar放入lib目录
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装