最近接到一个需求,要给web页面实时推送消息,和前端一顿讨论后决定使用webSocket(因为感觉比较有高级感,而直接轮询有点low)所以按照网上的教程一顿操作实现之后觉得自己棒棒的,但是后来发现除了实时推送的消息还有定时推送的消息,需要写Xxjob去调自己的webSocket(Xxjob放在另一个工程中),这种操作就感觉有点奇怪了,所以去请教了大佬,才了解到webSocket其实一般使用很少,除非是对实时性要求很高的一些游戏之类的,一般的web不会使用,因为实现麻烦不说,还要一直和前端建立一个通道不稳定也不安全,如果实在需要主档推消息的话可以考虑http长连接和短连接,实际上前端直接轮询最为简单,而我们的系统对消息的实时性要求并不高,两三分钟一次轮询就可以了。以下纪录一下这次涉及到的一点知识点。
webSocket:后台可以主动推送消息,没有延时。
http短连接:http请求默认使用短连接,在请求结束时关闭连接。
http长连接:在响应头加入Connection:keep-alive,建立请求后短时间内不会关闭(时间可在服务器配置),可以减少连接的建立和释放所消耗的资源,用于频繁的请求的情况。