• z.l
    2019-06-23
    希望下一本能出《深入拆解netty》😄
    
     8
  • 吃饭饭
    2019-06-20
    为了跟现有的 HTTP 协议保持兼容,它通过 HTTP 协议进行一次握手,这里不应该是三次握手吗老师?不太明白这里,求讲解

    作者回复: 这里的握手是指应用协议层,不是tcp层。握手的时候tcp连接已经建立,就是http请求里带有websocket的请求头,服务端回复也带有websocket的响应头。

    
     6
  • WL
    2019-06-25
    老师能否讲一下tomcat在https中如何实现与客户端协商密钥的, 我感觉这个过程比较复杂, 涉及到两边的交互比较多,还有TrustManager的机制也没太看懂.

    作者回复: 建议你用openssl s_client -connect www.xxx.com:443,看看ssl握手过程,再结合网上的文章来学习

    
     2
  • QQ怪
    2019-06-20
    之前做过相关websocket服务的相关设计,只要把登陆对象用户标识作为key,websocketsessionid作为value缓存成map集合,通过key找到websocketsessionId发送即可,利用的是spring websocket,但我有一点不太清楚的是:我听说单机tomcat能容纳5万客户端,我不知道为啥会是这个数,为啥不是更多呢?我在开发过程中其实压根就没到过这么大,我想知道是什么因素影响着最大容量数?还有就是想问websocket会不会存在并发问题?希望老师能够解答我的困惑,感谢!!!

    作者回复: 5万感觉是Linux上一个进程打开的文件数限制,Linux把Socket也看作是一个文件。

    并发数没上去要看资源瓶颈在哪,内存,CPU或者带宽,一般大量链接需要耗费内存,还有就是Tomcat的最大连接数和最大线程数设置大了没有。

    你的Websocket应用访问了全局变量就有并发问题,Tomcat层面不会有全局锁的瓶颈。
    你说的并发是指线程安全吗,要看websocket

    
     2
  • -W.LI-
    2019-06-23
    老师好!我有个问题可能有点蠢。spring对websocket有支持,还有STOMP这种。文中说websocket不是运行在severlet容器上的。spring上下文不是servlet容易下的一个子容器么?没有servlet容器的话,这个spring上下文注册去哪了啊?
     1
     1
  • foo
    2019-06-20
    老师,一直不太理解注解的作用及原理,在网上查到注解的目的是标识源代码元素的元数据,是否是源码中通过反射检测到注解后,实现了此注解的实际动作?如何查看此注解的实际动作呢?(描述有点乱,见谅)

    作者回复: 是的,查找注解的实际动作可以在代码中全文搜索注解的关键字

    
     1
  • Liam
    2019-06-20
    维护一个全局用户连接字典,建立连接时,将用户连接加入字典,发送消息时,从字典获取特定用户的连接并发送 ?

    作者回复: 对的

    
     1
  • 小奶狗
    2019-12-31
    老师,客户端websocket是怎么保持长连接的?是通过心跳机制(比如每隔60s,客户端向服务器发送一个报文,然后服务端就保持连接,否则就断开连接)吗?
    
    
  • Geek_00d567
    2019-09-19
    特别的用户,需要知道用户和IP的映射关系吧。
    
    
  • 秋天
    2019-07-23
    向特定的用户发送消息 就在 endpoint 这段持有一个对应用户的一个 map结构,这样可以对于自己关心的用户就可以直接发送消息了
    
    
  • 双月鸟
    2019-07-02
    // 向聊天室中的每个用户广播消息
        private static void broadcast(String msg) {
            for (ChatAnnotation client : connections) {
                try {
                    synchronized (client) {
                        client.session.getBasicRemote().sendText(msg);
                    }
                } catch (IOException e) {
                  ...
                }
            }
        }
    为什么client要加synchronized,不加好像没影响
    展开
     1
    
  • Geek_28b75e
    2019-06-21
    老师,测试环境遇到一个问题,本项目使用springcloud,网管使用zuul。我在网关路由之前的过滤器添加了一个请求头,添加之后对于一般接口的路由转发是正常的,其中对于文件上传接口,我断点查看,需要好几秒才转发过去,并且报异常,org.apache.tomcat.util.http.fileupload.FileUploadException: Unexpected EOF read on the socket] with root cause
    java.io.EOFException: Unexpected EOF read on the socket
    去掉那个请求头又是正常的,麻烦老师给解惑一下

    作者回复: 建议抓包分析

    
    
  • Cy190622
    2019-06-20
    老师,晚上好。
    请教一下,
    1.每节都有课后思考题,老师能否在下一节安排解答一下,或者是安排统一的解答章节嘛?
    2.netty现在使用很流行。常用在生产上,咱们的课程是否会安排一节,讲一下;如果没有安排的,老师有没有推荐的书籍或者帖子。

    作者回复: 后面会有统一的答疑篇,Netty In Action 不错。

    
    
  • 杨俊
    2019-06-20
    tomcat nodejs在websocket性能上哪个好呢

    作者回复: netty最好 :)

    
    
  • Geek_9d8c59
    2019-06-20
    java版本的websocket客户端,websocket如果是分frame传输,不在意数据大小,为什么我把图片转换成base64,使用同步发送方法,会触发连接关闭。而把session的string消息类型的缓冲区设置的足够大之后,问题才消失。而后面在我加入了心跳包,重连机制后,当重连次数多了,为什么有时服务端会有大量tcp处于close-wait状态,然后日志开始报java heap内存不足的错误
    
    
  • andy
    2019-06-20
    老师您好,我有个tomcat spring mvc应用,需要提供一个接口供socket连接,我可以直接在应用服务层用netty编写一个监听端口来实现吗

    作者回复: 可以的,端口不冲突就行

    
    
  • 咸鱼
    2019-06-20
    老师,请问下对于插拔网线导致连接断开,websocket的服务端或客户端,可以监听到这个事件吗?是不是还需要程序做一些补偿机制?

    作者回复: socket连接是TCP传输层负责维护的,WebSocket是应用层协议,实际不管这个。

    
    
  • IT橘子
    2019-06-20
    老师,在实际使用中,websocket和stomp over websocket优缺点如何?web在线聊天的语音或图片消息也是通过websocket实现,还是有其他技术?
    
    
  • 门窗小二
    2019-06-20
    通过从session中找到要发送的目标对象的信息!然后进行匹配发送
    
    
  • crazypokerk
    2019-06-20
    请问下老师,WebSocket和Servlet容器中处理请求的Servlet算是同一等级的组件吗?

    作者回复: 是的

    
    
我们在线,来聊聊吧