在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
websocket在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 我大概调研了一下目前在go生态下使用websocket的方案,感觉websocket这个库是比较好用的。文档友好,API稳定。比较推荐使用。我们的代码也使用了这个库。 下面我们来写一个简单的websocket应用 hello_robot,它的作用很简单,就是你不管和它说什么,它都会说"hello" + 你输入的内容。 serverserver有两个作用,第一是监听请求并发送我们的html文件,第二是监听用户输入内容并加以答复。
我们需要一个Conn类型来表示我们的websocket连接。在客户端,我们需要用一个upgrader对象调用Upgrade函数来获得这个连接的指针。所以,我们首先需要创建这个Upgrader。
在主函数中,我们设定了两个路由,一个是用于send我们的客户端html文件的,一个是用来监听用户输入内容的。最后,我们监听了本地的8080端口。
home函数用于发送客户端html文件。
echo函数负责处理我们的websocket连接。首先,我们调用upgrader.Upgrade(w, r, nil)获得这个连接的指针。然后,我们进入一个循环,不停的读取连接中传来的信息,当有信息传来时,对信息处理后返回给客户端。这里有一点要注意,就是c.ReadMessage()是阻塞的,,也就是说,当有消息来时,它后面的代码才会被执行。 客户端
客户端(前端代码)很简单,这里我只写一个框架。首先,用new WebSocket(...)建立一个连接,并为这个连接绑定几个函数,这里我们可以设定onopen(建立连接),onmessage(收到服务端消息),onerror(发生错误)。然后,我们可以给我们的send按钮绑定单击事件,单击后发送数据到后台。 |
请发表评论