网络编程
文章平均质量分 72
小猴子的技术笔记
这个作者很懒,什么都没留下…
展开
-
go 弹幕实战(Go+Gorm+WebSocket+Vue+ProtocolBuffer )高并发弹幕
之前为了学习netty开源了一个java版本的并发弹幕已经在线上运行许久了,也收获了一部分start和一部分的优化建议。由于近期学了go语言就想着把之前的弹幕系统用go语言实现一波,顺便学习下go相关的技术栈。目前go使用了websocket、protobuf、gorm、redis等技术已经实现了和java版本相同的效果,感兴趣可以访问项目地址或者线上地址(目前有些id是固定的,后续会慢慢修改)。......原创 2022-08-27 19:30:18 · 961 阅读 · 1 评论 -
Netty弹幕实战,Vue前后端分离
SpringBoot+Netty+WebSocket+Vue+ProtocolBuffer 前后端分离 高并发弹幕原创 2022-05-03 01:04:00 · 498 阅读 · 0 评论 -
通过源码分析-Netty默认起多少线程?何时启动?
如果你在简历上写了Netty,那么面试官百分之九十的可能会问你Netty默认其多少线程?在什么时候启动的问题。面试官一方面是想考验你对Netty有没有最基本的知识点掌握,一方面是想试探你有没有深入了解过Netty的源码和启动流程。 你在编写Netty服务端的时候经常会编写下面的代码:EventLoopGroup boss = new NioEventLoopGroup();EventLoopGroup worker = new NioEventLoopGroup(); 这里构建原创 2022-02-10 15:03:53 · 2761 阅读 · 0 评论 -
future.channel().closeFuture().sync()的语义
欢迎微信搜索并关注“小猴子的技术笔记”公众号 私信我 领取丰富的视频学习资料! 在最初开始学习netty的过程中经常使用的是主函数启动netty服务端的代码,会加入"future.channel().closeFuture().sync();"这样一句话,这在我刚开始学习netty的时候还是比较费解的。 接下来将有两个例子进行对比来感受一下添加上面那句话给程序带来的影响。我先写了一个添加了"future.channel().closeFuture().sync();"的代码示例:p原创 2021-09-08 09:35:47 · 2411 阅读 · 0 评论 -
Netty-心跳检测的作用和实现方法
欢迎微信搜索并关注“小猴子的技术笔记”公众号 私信我 领取丰富的视频学习资料! 关于心跳我们在长链接的开发中一般都是会遇到的,因为是长链接所以需要定时发送心跳保持连接的活跃。当服务端检测不到客户端的心跳之后就会释放资源,这个操作是一个很重要的操作。 如果你处理过原生socket的心跳检测机制,你会发现那是一个比较麻烦的处理。你需要起一个线程或者定时任务来不停的检测连接是否有心跳上送,如果没有心跳你就需要释放资源,关闭socket或者尝试重连机制。 Netty为我们提供了一个“原创 2021-04-02 08:51:34 · 679 阅读 · 0 评论 -
TCP-缓冲区和粘包、拆包有什么关系?
欢迎大家搜索“小猴子的技术笔记”关注我的公众号,领取丰富面试资料和学习资料。 你了解TCP缓冲区吗?它和TCP传输中的粘包和拆包有什么关系呢?粘包和拆包分别发生在TCP的那个阶段呢? 先简单回顾下TCP概念:在网络传输中TCP是面向连接的、可靠的、双通道、字节流一对一传输。TCP双方通信必须要先建立连接,然后分配必要的内核资源。双方交换完毕数据之后必须都要断开连接用来释放系统资源,长链接可以不必断开连接复用同一个通道。那么什么是TCP的缓冲区呢? 操作系统中有两个空间:用户原创 2021-03-15 15:05:09 · 349 阅读 · 0 评论 -
生产上使用自定义线程池控制socket短连接需要注意的事项
欢迎大家搜索“小猴子的技术笔记”关注我的公众号,有问题可以及时和我交流。 对于一些平台业务对接除了http还有就是socket用的比较多了,特别软件是跟硬件设备做对接。在并发要求不是很高的时候,可以使用BIO的socket,因为它足够简单,足够方便。如果并发量很高的话,推荐使用NIO的socket,因为它能够支持较高的并发。 如果使用的是长连接的话,那么需要注意的是长连接的心跳保持,客户端的断线重连,报文格式的定义等。 如果可以的话,还是建议使用netty这个强大的框架,因原创 2021-02-24 08:48:43 · 226 阅读 · 0 评论 -
详解什么是 socket、套接字、“插座”!
欢迎大家搜索“小猴子的技术笔记”关注我的公众号,有问题可以及时和我交流。 你知道插座吗?你知道网络编程中的插座吗?也许你会有点迷惑,什么是插座!但是我如果说出“套接字”、“socket”这样的关键字你就会恍然大悟。 所谓的“插座”叫做套接字又叫做socket,用来表示一个端点,可以与网络中其他的socket进行连接,然后进行数据的传输。 我们都知道在网络上中可以通过IP地址确定唯一的一台主机,然后主机和主机之间进行通讯。但是准确来说:网络通讯中的双方并不是主机,而是主机中的原创 2021-02-19 08:46:33 · 1132 阅读 · 0 评论