azw3 netty权威指南_小程序,巧应用(pdf+epub+mobi+txt+azw3)
7.3.3 程序细化
服务器端采用高性能、异步事件驱动的NIO框架Netty来实现,部分代码如下:
/***RobotsServer实现
***/
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
public class RobotsServer {
public static void main(String[] args){
ChannelFactory factory = new NioServerSocketChannelFactory(Executors.
newCachedThreadPool(),Executors.newCachedThreadPool());
ServerBootstrap bootstrap = new ServerBootstrap(factory);
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
public ChannelPipeline getPipeline() throws Exception {
// 机器人进行语义分析,然后返回给客户
return Channels.pipeline(new RobotsServerHandler());
}
});
bootstrap.setOption("child.tcpNoDelay",true);
bootstrap.setOption("child.keepAlive",true);
bootstrap.bind(new InetSocketAddress(8080));
}
}
/***RobotsServerHandler实现
***/
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
public class RobotsServerHandler extends SimpleChannelHandler {
@Override
public void messageReceived(ChannelHandlerContext ctx,MessageEvent e) throws
Exception {
Channel channel = e.getChannel();
Object retMessage = messageHandler(e.getMessage());
channel.write(retMessage);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx,MessageEvent e) throws
Exception {
e.getCause().printStackTrace();
e.getChannel().close();
}
private Object messageHandler(Object message){
// 可以进行一些自然语义分析,然后加上搜索,快速告诉客户你的答案
// 在这里我们只是简单返回,相当于
ECHO的作用
return message;
}"+e.detail.value.q)
console.log(e.detail)
this.setData({
text: initData + '\n' + extraLine.join('\n'),
tt: ''
})
},
wx.connectSocket({
url: 'ws:// www.apayado.com/RobotsServer',
data:{
},
header:{
'content-type': 'application/json'
},
method:"GET"
}),
wx.onSocketOpen(function(res) {
socketOpen = true
}),
打开websocket如下:
function sendSocketMessage(msg) {
if (socketOpen) {
wx.sendSocketMessage({
data:msg
})
} else {
console.log("还没有连接,不能发送:
"+msg)
}
},
发送msg信息给服务器:
wx.onSocketMessage(function(res) {
console.log('收到服务器内容:
' + res.data)
extraLine.push("高冷:
" + res.data)
this.setData({
text: initData + '\n' + extraLine.join('\n'),
tt: ''
})
})
在收到内容后,push到数组中保存extraLine数组在index.js头部定义:
var extraLine = [];
var socketOpen = false;
Page({
data: {
text: initData,
tt: ''
},
这个例子展示了如何使用WebSocket进行客户端和服务器间的通信,小程序在有了WebSocket之后,意味着可以自己实现TCP/UDP短连接、长连接,完成聊天、IM、股票、交易等实时交互的通信应用,甚至可以用于物联网等领域,非常灵活强大,发挥空间巨大。
>>>>好书分享中...关注微信cdf287或cdf289看书
azw3 netty权威指南_小程序,巧应用(pdf+epub+mobi+txt+azw3)相关推荐
- mobi 第五项修炼_第五项修炼(pdf+epub+mobi+txt+azw3)
第5章 心灵的转变 (7)皮格马利翁效应在无数场合都有验证.9有一个在学校的例子:一位老师对一个学生的看法,影响了那个学生的表现.珍很害羞,在新学校的头一个学期,成绩特别不好(因为父母总吵架).于是, ...
- php设计模式epub,大话设计模式(pdf+epub+mobi+txt+azw3)
第2章 商场促销--策略模式 小菜,给你出个作业,做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费." "就这个?没问题呀."小菜说,"用两 ...
- 直击招聘程序员面试笔试C语言深度解析,直击招聘 程序员面试笔试C++语言深度解析(直击招聘) pdf epub mobi txt 下载...
直击招聘 程序员面试笔试C++语言深度解析(直击招聘) pdf epub mobi txt 下载 图书介绍 ☆☆☆☆☆ 李春葆,李筱驰 著 下载链接在页面底部 发表于2021-05-18 类似图书 点 ...
- 《Netty权威指南》笔记 —— 第二十、二十一、二十二, 二十三章
<Netty权威指南>笔记--Netty高级特性 第20章 Netty架构剖析 Reactor通信调度层 职责链 ChannelPipeline 业务逻辑编排层 关键架构质量属性 高性能 ...
- netty权威指南第一章
本章内容如下: 5种网络I/O模型的介绍 I/O多路复用的介绍 1.I/O基础入门 在Java1.4之前,Java对I/O的支持不完善,开发人员在开发高性能I/O的程序时,会面临以下问题: 没有数据缓 ...
- Netty权威指南(四)TCP粘包/拆包问题
TCP粘包/拆包问题解决之道 上一章 一.介绍 1.1 TCP粘包/拆包问题说明 1.2 TCP粘包/拆包发生的原因 1.3 粘包问题的解决策略 二.未考虑TCP粘包导致的功能异常案例 2.1 Tim ...
- 《Netty权威指南》
<Netty权威指南> 基本信息 作者: 李林锋 出版社:电子工业出版社 ISBN:9787121233432 上架时间:2014-5-29 出版日期:2014 年6月 开本:16开 页码 ...
- netty权威指南笔记-以回车换行结尾的消息如何处理半包问题
概述 TCP底层会发生粘包和拆包,这个是TCP的一个特性.为了减少网络数据传输的次数,TCP总是希望让网络数据到达一定量级的时候才将数据发送出去,而不是缓存区一有数据就马上发送数据. TCP底层会根据 ...
- [201504][Netty 权威指南][第2版][李林锋][著]
[201504][Netty 权威指南][第2版][李林锋][著] https://github.com/wuyinxian124/nettybook2 基础篇 走进 Java NIO 第 1 章 J ...
- 《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
前言 Netty权威指南中以时间服务器为入门案例,演示了如何通过Netty完成了服务端与客户端之间的交互过程. 在开始使用Netty开发之前,先回顾一下使用NIO进行服务端开发的步骤. 创建Serve ...
最新文章
- 请问,关闭子窗口提示错误,大家遇到这样的问题吗?
- 20145209刘一阳《JAVA程序设计》第七周课堂测试
- Altium_Designer-PCB的覆铜步骤
- 十六、数据变换和数据离散化
- php 修改css 不生效,HTML外部引用CSS文件不生效原因分析及解决办法
- 精通SpringBoot---整合RabbitMQ消息队列
- 【博弈】Codeforces Round #573 (Div. 1) Tokitsukaze, CSL and Stone Game
- 安全开发Java:日志注入,并没那么简单
- php可逆加密函数,简洁的PHP可逆加密函数
- OpenShift 4 之 GitOps(5)用ArgoCD配置其他OpenShift资源
- dw二级联动下拉菜单插件 宋君墨_Excel下拉菜单不会做?15秒教会你制作一二三级联动下拉菜单,从此做表不求人!...
- 20200209:匹配子序列的单词数(leetcode792)
- 哐!英特尔的无人机砸中你头顶
- 语音信号处理基础(一)
- 使用PrinterJob进行分页打印
- Java数据库编程基本配置
- 工具DebugView、PCHunter、Procexp、Procmon
- Android App 免杀教程
- Linux 系统字体安装
- element-ui table表格。数组对应的一组数据占有两行怎么处理?