golang实现的简单的聊天室,前端使用html+js,后端使用golang完成socket的长连接下载
长连接(socket)和短连接(ajax)。
长连接不存在跨域问题。
实现socket的三种方式:
net,node的内置模块
socket.io
兼容性好,但是要先引入
websocket
websocket是h5新增,低版本浏览器不兼容。
长连接的使用场景:
实时刷新
如果前端使用轮询,那么前端和服务端都要耗费资源,如果使用socket长连接,那么就只需服务端发送就可以了。
服务器端发起数据
ajax是前端主动往后端发送消息,后端无法主动往前端发送消息(服务器主动推送消息)。
socket的步骤