Comments (1)
首先感谢您对summer的关注。
在summer中sctx (sessionContext) 是与连接绑定的,只要链路还在,sctx就不销毁,也就是说链路仅对应一个sctx。可能您说的是http情况,http协议下每次请求进来都是一个新的链路,也就是每次都会新建个sctx,但返回完会立马销毁。
对于sctx里面的waitWriteQueue这个问题,当链路可写时,会把waitWriteQueue里面的数据包依次写出。
push和响应都是调用以下代码,当链路可写时且队列为空则立刻写出,否则添加到队列中。
if (sctx.getWaitWriteQueueSize() == 0 && ctx.channel().isWritable()) {
ctx.writeAndFlush(response);
} else {
sctx.getWaitWriteQueue().add(response);
}
下面这个是ServerStringHandler里面的代码,当触发可写事件时将队列中的数据包逐个写出。
public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception {
super.channelWritabilityChanged(ctx);
SessionContext sctx = serverContext.getSessionContextGroup().getSessionByChannel(ctx);
while (ctx.channel().isActive() && ctx.channel().isWritable() && sctx.getWaitWriteQueueSize() > 0) {
ctx.writeAndFlush(sctx.getWaitWriteQueue().poll());
}
}
from summer.
Related Issues (20)
- 后期会加业务吗? HOT 1
- 服务端重启或者下线怎么处理? HOT 1
- test例子中的TestService报错 HOT 2
- 希望多增加一些例子 HOT 1
- 建议 HOT 4
- RpcClientMgr.java在一个Cluster下多个不同serverName时出现的BUG HOT 1
- 建议:增加节点间传输的protobuf HOT 2
- 请问支持帧同步吗/ HOT 1
- 没有找到test包 HOT 3
- 能否让service注解也具有数据库事务管理 HOT 1
- StringPasswordLineDecoder有内存泄露 HOT 3
- 在多服务器下的一些问题和建议
- 春夏秋冬
- 你好 HOT 1
- 启动的报这个错,好象是那个异步数据仓库加载初始化的时候报错!请问是什么原因? HOT 2
- 能不能加入protobuf协议类型的支持,非常感谢! HOT 3
- 大佬你使用的注解在哪个类中进行获取并处理的呢? HOT 1
- 看不懂...大佬能写个教程吗? HOT 1
- 大佬,可以加下你的微信吗。请教一下您
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from summer.