当前位置: 首页 > news >正文

netty websocket学习

【硬核】肝了一月的Netty知识点

超详细Netty入门,看这篇就够了!

bzm_netty_sb
netty-chat
vue+websokect实现实时聊天,可单聊、可群聊(一)
vue实现聊天栏定位到最底部(超简单、可直接复制使用)
vue实现指定div右键显示菜单,并实现复制内容到粘贴板

Springboot实现websocket(连接前jwt验证token)

vue中audio标签自定义音频播放栏

netty-websocket 鉴权token及统一请求和响应头(鉴权控制器)

一个优秀活跃的视频转码项目分享

动手打造属于自己的直播间(Vue+SpringBoot+Nginx)
互联网实时聊天系统 (Spring + Netty + Websocket)

42-Netty基础-Websocket-Netty握手源码分析 - B站视频 - 很详细
43-FrameDecoder源码分析
44-Netty基础-WebSocket08FrameEncoder源码分析
46-Netty基础-WebSocket-HandshakeComplete握手成功事件
47-Netty基础-WebSocket-DefaultChannelGroup消息群发

【netty专栏】 - 待学习

WebSocket协议:5分钟从入门到精通

SpringBoot+Netty+WebSocket实现在线聊天 有对应的B站视频和代码-已fork - 代码

SpringBoot 整合 Netty + Websocket

Spring boot 项目(二十三)——用 Netty+Websocket实现聊天室

springBoot + netty搭建高性能 websocket 服务 & 性能测试(包含python 测试脚本)
springBoot使用webSocket的几种方式以及在高并发出现的问题及解决

SpringBoot2+Netty+WebSocket(netty实现websocket,支持URL参数)
SpringBoot整合Netty处理WebSocket(支持url参数)
使用Netty处理WebSocket请求

SpringBoot 集成 Netty 使用WebSocket功能,并实现token校验

微服务springcloud环境下基于Netty搭建websocket集群实现服务器消息推送----netty是yyds

SpringBoot2+Netty+WebSocket(netty实现websocket)

SpringBoot 整合 Netty 实现 WebSocket

Netty实战,Springboot + netty +websocket 实现推送消息

springboot实现webrtc

更新啦,SpringBoot+websocket聊天-增加语音功能

Springboot整合WebSocket实现网页版聊天,快来围观!

Spring WebSocket传递多媒体消息

Springboot+Netty搭建分布式的WebSocket简单集群,后续完善即时通讯聊天系统

SpringBoot+Netty+WebSocket+Vue+ProtocolBuffer 高并发弹幕 - 代码全

EasyMedia项目 — Springboot、netty实现的http-flv、websocket-flv直播点播,支持rtsp、h264、h265、rtmp等多种源,h5纯js播放(不依赖flash),不需要nginx等第三方拉流服务

js Blob、ArrayBuffer(Uint8Array、TypedArray、DataView)、Buffer、DataUrl
【OFD】ArrayBuffer 和 Uint8Array

package com.zzhua.test06;import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.http.*;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolConfig;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;public class NettyWsServer {public static void main(String[] args) throws InterruptedException {EventLoopGroup bossGroup = new NioEventLoopGroup();EventLoopGroup workerGroup = new NioEventLoopGroup(16);try {ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast("http-decoder", new HttpRequestDecoder());ch.pipeline().addLast("http-encoder", new HttpResponseEncoder());ch.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));WebSocketServerProtocolConfig wsServerConfig = WebSocketServerProtocolConfig.newBuilder().websocketPath("/websocket").maxFramePayloadLength(Integer.MAX_VALUE).checkStartsWith(true).build();ch.pipeline().addLast("websocketHandler", new WebSocketServerProtocolHandler(wsServerConfig));ch.pipeline().addLast("wsTextHandler", new WsTextHandler());}});ChannelFuture channelFuture = serverBootstrap.bind(8080).sync();channelFuture.channel().closeFuture().sync();} finally {workerGroup.shutdownGracefully();bossGroup.shutdownGracefully();}}
}
package com.zzhua.test06;import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.http.websocketx.PingWebSocketFrame;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import io.netty.handler.codec.http.websocketx.WebSocketFrame;import java.nio.charset.StandardCharsets;public class WsTextHandler extends SimpleChannelInboundHandler<WebSocketFrame> {@Overrideprotected void channelRead0(ChannelHandlerContext ctx, WebSocketFrame msg) throws Exception {System.out.println("收到消息: " + msg.content().toString(StandardCharsets.UTF_8));TextWebSocketFrame textWebSocketFrame = new TextWebSocketFrame();textWebSocketFrame.content().writeBytes("收到了".getBytes());ctx.channel().writeAndFlush(textWebSocketFrame);}
}
<script>var ws = new WebSocket('ws://localhost:8080/websocket')ws.onmessage  = msg => {console.log('收到消息: ' + msg.data);}ws.onclose = () => {console.log('关闭连接');}ws.onerror = () => {console.log('连接错误');}ws.onopen = function (event) {console.log("建立连接成功")ws.send('halo')}</script>
http://www.lryc.cn/news/253141.html

相关文章:

  • 【数据结构】环形队列
  • 嵌入式C编码规范
  • Golang 并发 — 流水线
  • Elasticsearch:什么是非结构化数据?
  • 15:00的面试,15:06就出来了,问的问题过于变态了。。。
  • Web自动化测试怎么做?Web网页测试全流程解析
  • MySQL数据库SQLSTATE[22007]: Invalid datetime format 日期类型不能为空值的解决办法
  • 搬运工让你分分钟了解Web接口测试
  • 作业12.5
  • leetCode 47. 全排列 II + 回溯算法 + 图解 + 笔记
  • Maya 2024(3D建模、动画和渲染软件)
  • C++作业5
  • Go语言很难吗?为什么 Go 岗位这么少?
  • 为什么要替换 Object.defineProperty?
  • 百马百担c语言编程
  • C++检测字符串中有效的括号个数
  • 前端依赖下载速度过慢解决方法,nrm 镜像管理工具
  • 如何为 3D 模型制作纹理的最佳方法
  • 智慧校园:TSINGSEE青犀智能视频监控系统,AI助力优化校园管理
  • Three的lod技术
  • Git配置
  • 阻抗控制下机器人接触刚性环境振荡不稳定进行阻抗调节
  • 【鸿蒙应用ArkTS开发系列】-自定义底部菜单列表弹窗
  • yolov8添加ca注意力机制
  • linux java后台启动的几种方式
  • selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(5)
  • 代码随想录二刷 |栈与队列 |理论基础
  • java--接口概述
  • 出海风潮:中国母婴品牌征服国际市场的机遇与挑战!
  • 一文读懂MongoDB的知识点(3),惊呆面试官。