博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang vue 使用 websocket 的例子
阅读量:6167 次
发布时间:2019-06-21

本文共 1852 字,大约阅读时间需要 6 分钟。

一. 编写golang服务端

 1.导入必要的websocket包,golang.org/x/net/websocket 或 github.com/golang/net/websocket

 2.编写消息处理函数,主要实现接收客户端发送的消息和向客户端发送消息

 

func Handle(conn *websocket.Conn) {
defer conn.Close() jsonHandler := websocket.JSON userInfo := &UserInfo{} res := &Response{
Code: 1, Msg: "success", } go Push(conn) for {
err := jsonHandler.Receive(conn, userInfo) if err != nil {
fmt.Println(err) break } jsonData, _ := json.Marshal(userInfo) fmt.Println("receive data:", string(jsonData[:])) err = jsonHandler.Send(conn, res) if err != nil {
fmt.Println(err) break } } }

 3.绑定地址及端口

package main import ( "fmt"    "golang.org/x/net/websocket"    "net/http"    "w3liu.com/websocket/handler" ) func main() {
http.Handle("/ws", websocket.Handler(handler.Handle)) err := http.ListenAndServe(":88", nil) if err != nil {
fmt.Println(err) } }

 

二、编写VUE客户端

  

<
template
>
<
div
>
{
{
msg}}
</
div
>
</
template
>
<
script
>
export
default {
data () {
return {
websock:
null,
msg:
''
}
},
methods: {
init
:
function () {
const
wsurl =
'ws://127.0.0.1:88/ws'
this.
websock =
new
WebSocket(
wsurl)
this.
websock.
onmessage =
this.
onmessage
this.
websock.
onopen =
this.
onopen
this.
websock.
onerror =
this.
onerror
this.
websock.
onclose =
this.
onclose
},
onopen
:
function () {
this.
send(
'{"userid":1, "name":"zhang san", "age":"30"}')
},
send
:
function (
data) {
for (
var
i =
0;
i <
10;
i++) {
this.
websock.
send(
data)
}
},
onclose
:
function (
e) {
console.
log(
'ws close',
e)
},
onmessage
:
function (
e) {
let
_this =
this
console.
log(
e.
data)
_this.
msg =
e.
data
},
onerror
:
function () {
console.
log(
'ws error')
this.
init()
}
},
mounted
:
function () {
this.
init()
},
watch: {
}
}
</
script
>

 

 完整源码访问:

 

转载于:https://www.cnblogs.com/w3liu/p/10590779.html

你可能感兴趣的文章
从91移动应用发展趋势报告看国内应用现状
查看>>
【ORACLE技术嘉年华PPT】MySQL压力测试经验
查看>>
Linux下汇编调试器GDB的使用
查看>>
css溢出机制探究
查看>>
vue中如何实现后台管理系统的权限控制
查看>>
关于angularjs过滤器的理解
查看>>
vue 使用html2canvas将DOM转化为图片
查看>>
angular编辑-初始化变量失败
查看>>
jQuery源码解析之Data
查看>>
React Native Cannot read property 'bindings' of null (null)) 解决!
查看>>
同样的神经网络引擎,苹果A11芯片比华为麒麟970牛在哪?
查看>>
ucar-weex
查看>>
vuex 理解与应用
查看>>
ES6(3)-各种类型的扩展(数组、对象)
查看>>
eclipse部署web项目至本地的tomcat但在webapps中找不到
查看>>
mysql 分组
查看>>
Android JNI入门第三篇——jni头文件分析
查看>>
ubuntu server 10.4下NFS服务的配置
查看>>
nginx+php-FastCGI+mysql性能测试
查看>>
Openstack架构及基本概念理解
查看>>