Golang 实现WebSocket服务端,客户端和html5调用
来源:互联网 发布:指南针软件好用吗 编辑:程序博客网 时间:2024/06/05 04:51
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46882777 转载请必须注明出处!
1,关于websocket
HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。
在JavaEE7中也实现了WebSocket协议。
在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
参考:
http://baike.baidu.com/link?url=gSdXNTHdO4W0jS-lqdo3VOL0VDTyTh7YLXV1amAT5cEsMIgn5u0Sbay4fMJeqOiX4vaWn9E4ttit3Dxv2A_KGK
2,安装websocket
使用的golang官方的net包下面的websocket,地址:
https://github.com/golang/net
首先设置go_path变量,参考:
http://blog.csdn.net/freewebsys/article/details/46695513
下载net包,安装websocket模块
- 1
- 2
- 3
- 4
- 5
- 6
这个模块的包结构都统一成golang.org/x/net。使用import “golang.org/x/net/websocket”引入。
文档在:(godoc是非常不错的网站,所有golang的文档都在上面。)
https://godoc.org/golang.org/x/net/websocket
3,代码和运行
代码:
https://github.com/golang-samples/websocket
server代码:最终还是挂在http服务器上面的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
客户端websocket调用代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
客户端使用websocket.Dial(url, “”, origin) 进行websocket连接,但是origin参数并没有实际调用。
使用websocket进行数据的发送和接受。非常有意思的事情是,如果客户端和服务端都是用go写,用的都是websocket这个对象。函数调用都是一样的,只不过一个写一个读数据而已。
4,html5调用
使用jquery了。用百度的cdn:
http://cdn.code.baidu.com/
html5页面代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
当点击button按钮之后,websocket收到onmessage事件,然后把数据显示到页面。
浏览器显示websocket连接状态。
5,总结
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46882777 转载请必须注明出处!
使用golang开发websocket非常简单。
非常方便,因为nodejs做服务器的时候会出现服务器负载突然高的情况,而且nodejs的库非常杂和多,解决起来可能比较麻烦。
我还是比较倾向于用golang开发。
- Golang 实现WebSocket服务端,客户端和html5调用
- golang(5):编写WebSocket服务,客户端和html5调用
- [C#] WebSocket 客户端+服务端 轻松实现
- golang grpc服务端客户端简单源码实现
- websocket:python服务端和cocos客户端
- WebSocket 和 Golang 实现聊天功能
- windows下使用php socket 和 html5 websocket实现服务器和客户端之间通信
- 2、Java WebSocket实现服务端主动发消息给客户端
- Java Websocket实例【服务端与客户端实现全双工通讯】
- WebSocket安卓客户端实现详解(三)--服务端主动通知
- golang简单实现Websocket
- golang中的websocket实现
- html5 websocket聊天室 客户端
- quick-cocos做客户端,golang做服务端,实现HTTP通信
- 使用JSR365规范构建J2EE websocket服务端和客户端应用
- grpc(3):使用 golang 开发 grpc 服务端和客户端
- UDP服务端和客户端实现
- golang udp服务端客户端例子
- 用.Net Core控制台模拟一个ASP.Net Core的管道模型
- 设计模式:可复用面向对象软件的基础---学习(0)
- 这几天的辛苦和努力
- 【java基础:JDBC】基于DBUtils工具类查询数据库的8种方式!非常重要!
- Building the kernel with clang
- Golang 实现WebSocket服务端,客户端和html5调用
- Spring深入浅出概述
- redis server
- JDBC-实现Java代码连接数据库
- dc文件转换.lib->.db
- 前端入门学习笔记(1)--html部分
- 关于studio 3.0编译Android 项目出现 aapt2解决方式(知心版)
- 存储器层次结构2
- 封装Http工具类