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

石河子做网站公司购物网站建设基本流程

石河子做网站公司,购物网站建设基本流程,网站建设对企业的发展,商务网站的主要存在形式netty socket如今#xff0c; Netty已用于Internet上的各种应用程序中#xff0c;以处理数千个#xff08;如果不是上百万个#xff09;聊天对话#xff0c;包括Minecraft #xff0c; Twitter和许多其他应用程序在内的多人游戏。 但是#xff0c;它并没有深入到开发企业… netty socket 如今 Netty已用于Internet上的各种应用程序中以处理数千个如果不是上百万个聊天对话包括Minecraft Twitter和许多其他应用程序在内的多人游戏。 但是它并没有深入到开发企业应用程序的企业程序员的头脑中。 我相信Netty可以引入其他功能解决方案无法比拟的新功能因为它具有完全双向文本和二进制非HTTP数据传输功能并且比传统的“每线程线程数”支持更多的并发客户端”服务器。 您可能知道Netty在WebSockets方面的能力但是您知道它可以像传统的Web服务器一样出色地工作吗 由于其非常周到的设计通过在其管道中添加适当的处理程序Netty几乎可以处理任何流量。 它还可以同时处理多种类型例如同时通过同一端口处理WebSocket和HTTP。 通过将这些结合在一起程序员可以避免处理诸如CORS跨源资源共享之类的麻烦问题当浏览器尝试向未从其下载的服务器发出请求时这些麻烦可能会抬起头来。 净值的力量 为了显示其转换企业应用程序的功能我整理了一个代码示例显示了Web的传统示例之一该示例正在检索股价。 其他应用程序必须发出AJAX请求轮询具有刷新按钮等才能更新价格。 WebSockets消除了任何这些需求。 创建持续开放的双向连接后客户端和服务器都可以在需要时彼此对话而无需任何协商。 因此客户端让服务器知道任何用户何时更改标准并且只要相关数据基于该标准发生变化服务器就会更新客户端。 您可以在此处找到功能齐全的代码。 我为客户端设置了一些基于JSON的协议以使服务器知道用户的决定。 要将新符号添加到服务器正在监视客户端的列表中只需要一个简单的调用即可。 这是一个例子 doSend({command:add, tickerSymbol:GOOG}); 这会将符号添加到列表中。 服务器的下一次更新将在其数据中包括新符号的当前股价来自Yahoo Finance的REST API。 删除项目同样容易 doSend({command:remove, tickerSymbol:GOOG}); 使用这两个命令客户端可以控制服务器正在为每个用户监视的符号列表。 在Netty处理程序的服务器端程序员要考虑多个用户的唯一工作是确保为每个新连接创建一个新的处理程序并且在不共享数据的地方不使用静态成员。 。 除非另有说明否则Netty假定处理程序不可共享。 让我们看看如何为Netty管道定义处理程序。 这来自StockTickerServer类 ServerBootstrap b new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new ChannelInitializerSocketChannel() { Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p ch.pipeline(); p.addLast(encoder, new HttpResponseEncoder()); p.addLast(decoder, new HttpRequestDecoder()); p.addLast(aggregator, new HttpObjectAggregator(65536)); p.addLast(handler, new StockTickerServerHandler()); } }); 这里的顺序非常重要因为管道中的每个处理程序都有机会处理或不处理数据并将其传递给下一个处理程序。 库存行情处理程序位于底部因为它是将数据发送回客户端的程序因此位于管道的末端。 通过创建处理程序的新实例每个新连接都将获得每个处理程序自己的实例。 如果处理程序是无状态的并且是线程安全的则可以在适用的情况下使用单例代替以节省内存。 我使用的处理程序中没有一个是可共享的因此这里没有显示示例。 Netty作为Web服务器 使用一些技巧来使Netty同时处理HTTP和WebSocket通信。 1. StockTickerServerHandler扩展了SimpleChannelInboundHandler Object 这告诉Netty我们希望所有流量都到达此处理程序。 否则如果只想处理HTTP通信则可以使用SimpleChannelInboundHandler FullHttpRequest如果只想处理WebSocket通信则可以使用SimpleChannelInboundHandler WebSocketFrame。 2. channelRead0通道读取为零方法 Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof FullHttpRequest) { this.handleHttpRequest(ctx, (FullHttpRequest)msg); } else if (msg instanceof WebSocketFrame) { this.handleWebSocketFrame(ctx, (WebSocketFrame)msg); } } 这使我们能够根据每种协议处理HTTP和WebSocket通信。 handleHttpRequest提供HTML图像CSSJavaScript和所有其他正常的网络流量handleWebSocketFrame指出如何处理从客户端发送的自定义消息。 3.哑剧类型 Netty没有内置处理Mime类型的支持因为WebSocket调用本质上并不需要它们。 我添加了Apache的mime类型文件的稍作修改的版本并静态加载了它。 我正在负载上进行同步因为Netty可以在开始时为池创建很多处理程序并且构造函数可以同时由多个处理程序执行。 由于该字段是静态的因此在映射变为非null之前可以对其进行多次加载。 同步静态锁不是类的当前实例可以防止这种情况的发生。 其他详情 handleWebSocketFrame方法处理WebSocket协议定义的不同“已知”帧类型。 收到全文框后我会将其传递给我创建的接口的实现者以指定如何处理业务逻辑。 该代码存在于StockTickerMessageHandler中。 它创建一个后台线程来检索股票报价并将其发送给客户端并处理客户端发送的命令。 那里有一些凌乱的代码用于处理Yahoo发送的Gzip压缩数据并解析服务返回的JSON以及一些使用java.util.concurrent类的代码例如ExecutorAtomicBooleanAtomicReference和CopyOnWriteArrayList来保存后台线程和Netty处理程序彼此踩踏因为它们共享有关通道和当前符号列表的详细信息。 我还使用Gson将传入的JSON转换为POJO以便更轻松地对其进行处理。 除此之外这仅仅是本示例的业务目的。 关于身份验证的注意事项 我没有时间向此示例添加身份验证。 如果这样做的话我会使用Shiro 它是一种功能强大的身份验证/授权/密码框架可与普通应用程序和Web应用程序一起使用。 也缺少HTTPS支持因为这是检查股票价格的公共应用程序。 有添加HTTPS和WSS的例子在这里 。 使用JavaScript WebSockets很难即使不是不可能的一件事是发送身份验证数据以及升级请求即调用新的WebSocketuri。 因此通常首先像正常网站一样发送HTTPS POST并设置auth cookie令牌。 这样发送升级请求时cookie会自动发送。 使用身份验证时请记住使用HTTPS和WSS而不是HTTP和WS来保护数据。 身份验证到位后就变成了在必要时检查经过身份验证的用户的问题注意某些流量应始终通过HTML图像等。 代码项目 结论 Netty已成为构建新应用程序的一种高性能改变游戏规则的方法。 通过利用WebSockets提供的功能当今的企业应用程序可以比现在更具交互性。 我希望您喜欢这个进入Netty的小冒险并请原谅糟糕的浏览器客户端我只是没有时间为此示例制作一个不错的Backbone.js客户端应用程序。 谢谢 翻译自: https://www.javacodegeeks.com/2015/03/netty-a-different-kind-of-websocket-server.htmlnetty socket
http://www.huolong8.cn/news/73190/

相关文章:

  • 中国建设银行网站 纪念币预约内蒙古网站建设电话
  • 电脑做apk的网站h5上饶网站建设哪家好
  • 软文网站app开发定制
  • 做网站接单的网站手机网站模块
  • 温州网页建站模板将网站保存怎么做
  • 石家庄站在哪个区wordpress获取文章标题
  • 好看的个人网站设计电子商务网站的建设目标
  • 中国石油建设工程协会网站南京市住房与城乡建设局网站
  • 网站在那里备案互联网公司响应式网站
  • 做设计及免费素材网站有哪些手机微网站建设方案
  • 做美工的网站大沥南庄网站建设
  • 长沙企业建站公司网站信息登记表
  • 做dw网站图片怎么下载地址cms免费建站系统
  • 网站建设公司海南网站搭建策略与方法有哪些方面
  • 银川网站建设哪家好叫啥名字一个网站每年维护费用
  • 石家庄网站建设联系电话温州网页制作招聘
  • 中山网站建设制作 超凡科技免费网站开发合同
  • cms网站建站流程网络营销网站规划建设
  • 深圳建网站需要多少钱昆明企业网站建设一条龙
  • 泉港区住房和城乡规划建设局网站启明星网站建设
  • 校园二手网站的建设方案网站做扫一扫
  • 小区媒体网站建设公众号运营工作内容
  • 网站宽屏背景企业网站建设门户
  • 杭州网站建设哪家公司好wordpress如何重置
  • 网站被k 但收录内页淘宝客 网站 备案
  • 那个网站教做冰鲜鱼做网站要学哪些程序
  • 云主机建网站教程竭诚网络网站建设开发
  • 电信网站备案流程图南京江北新区房价走势最新消息
  • 网站规划书的内容有哪些新闻门户网站建设
  • 桐柏网站建设网站建设方案书 下载