[已解决][HTML5]基于WebSocket开发小蝌蚪应用
前端时间在网上看到别人用WebSocket开发的小蝌蚪应用很炫酷,不过是php,于是想着用java也实现一套,
找到前端 https://github.com/danielmahal/Rumpetroll ,膜拜大神,自己写不来,拿来借用下~
后端基于https://github.com/generallycloud/baseio实现的WebSocket编写,
直接上代码:
public void accept(Session session, ReadFuture future) throws Exception {
if (future instanceof HttpReadFuture) {
super.accept(session, future);
return;
}
WebSocketReadFuture f = (WebSocketReadFuture) future;
// CLOSE
if (f.getType() == 8) {
msgAdapter.removeClient(session);
JSONObject o = new JSONObject();
o.put("type", "closed");
o.put("id", session.getSessionID());
msgAdapter.sendMsg(o.toJSONString());
logger.info("客户端主动关闭连接:{}", session);
} else {
String msg = f.getData().toString(Encoding.UTF8);
JSONObject o = JSONObject.parseObject(msg);
String name = o.getString("name");
if (StringUtil.isNullOrBlank(name)) {
name = getAddress(session);
}
o.put("name", name);
o.put("id", session.getSessionID());
String type = o.getString("type");
if ("update".equals(type)) {
o.put("life", "1");
o.put("authorized", "false");
o.put("x", Double.valueOf(o.getString("x")));
o.put("y", Double.valueOf(o.getString("x")));
o.put("momentum", Double.valueOf(o.getString("momentum")));
o.put("angle", Double.valueOf(o.getString("angle")));
} else if ("message".equals(type)) {
}
msgAdapter.sendMsg(o.toJSONString());
}
}
private String getAddress(Session session) {
String address = (String) session.getAttribute("_remote_address");
if (address == null) {
address = session.getRemoteSocketAddress().toString();
session.setAttribute("_remote_address", address);
}
return address;
}
演示地址:https://www.generallycloud.com/web-socket/rumpetroll/index.html
文章来自:http://www.cnblogs.com/gifisan/p/5946247.html
[已解决][HTML5]基于WebSocket开发小蝌蚪应用的更多相关文章
- [已解决][HTML5]基于WebSocket开发聊天室应用
WebSocket示例java的比较少,大部分是nodejs的,比较有名的是socket.io的chat, 借用下他的前端实现一套java的,后端基于https://github.com/genera ...
- 基于Websocket开发的仿微信聊天室
一.运行环境及涉及技术:----------------------------------* Visual Studio 2019* SQL SERVER 2008 R2* .Net FrameWo ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)
workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...
- 借助AMD来解决HTML5游戏开发中的痛点
借助AMD来解决HTML5游戏开发中的痛点 游戏开发的痛点 现在,基于国内流行引擎(LayaAir和Egret)和TypeScript的HTML5游戏开发有诸多痛点: 未采用TypeScript编译器 ...
- 高效简易开发基于websocket 的通讯应用
websocket的主要是为了解决在web上应用长连接进行灵活的通讯应用而产生,但websocket本身只是一个基础协议,对于消息上还不算灵活,毕竟websocket只提供文本和二进制流这种基础数据格 ...
- 一款基于Netty开发的WebSocket服务器
代码地址如下:http://www.demodashi.com/demo/13577.html 一款基于Netty开发的WebSocket服务器 这是一款基于Netty框架开发的服务端,通信协议为We ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】
[Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...
- 基于HTML5实现五彩连珠小游戏
今天给大家分享一款基于HTML5实现五彩连珠小游戏.这款游戏的规则:点击彩球移动到期望的位置,每移动一次,画面将随机出现3个新的彩球:当同一颜色的彩球连成5个一行或一列或一斜线时,这5个彩球同时消失, ...
随机推荐
- Java命令行解析:apache commons-cli
http://commons.apache.org/proper/commons-cli/usage.html Apache Commons CLI用于解析命令行选项,也可以输出详细的选项说明信息. ...
- swift-懒加载
override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.cyan self.navi ...
- JQuery控制滚动条滚动到指定位置
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- bzoj2523 聪明的学生
bzoj第一题,ctsc2001. 黑书上的递归例题,我们定义time()函数,递归求解即可. 这个题用到了一个小技巧:可以使用枚举来搞算法. #include <iostream> #i ...
- java基础总结——概述
一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web ...
- PCB上过孔via钻孔的直径如何设置 是任意的吗 谈谈PCB钻孔工艺及规格
PCB上过孔via钻孔的直径如何设置,是不是可以随便填入一个直径尺寸就行了?比如我的走线宽度是6mil,那我的via过孔直径也设置为6mil,节约布线空间岂不是更好?这样的设计板厂是否都能按照设计规格 ...
- Intellij 常用技巧-持续更新
1.快速输入 System.out.println(); sout [TAB] 2.删除Module ctrl+alt+shift+s 调出 Project Structure ,也可点击菜单Fil ...
- Spring操作指南-IoC基础环境配置(基于XML)
- Power-BI 预警触发的设定
在现实的业务场景,当某一区域的销售额低于一定的值时,那么就要引起重视了.我们希望当发生这种情况时,通过邮件或微信通知用户进行关注.Power-BI 预警触发功能就可以实现这个功能.一.设定公共参数1. ...
- 使用MSMQ 远程队列
------------------------------------------------------------------------------------------------- -- ...