加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[Go] 实现websocket服务端

发布时间:2021-05-21 06:47:23 所属栏目:大数据 来源: https://www.jb51.cc
导读:直接使用官方子包可以实现websocket协议, golang.org/x/net/websocket如果在这个目录没有这个包就去github下载net库,放进这个目录$GOPATH/src/golang.org/x/net就行了服务端代码: package mainimport ( " time " log net/http golang.org/x/net/websocket

直接使用官方子包可以实现websocket协议,

golang.org/x/net/websocket 如果在这个目录没有这个包就去github下载net库,放进这个目录$GOPATH/src/golang.org/x/net就行了 服务端代码:
package main

import (
    "time"
    lognet/httpgolang.org/x/net/websocket"
)
func main(){
    http.HandleFunc(/,index)
    http.Handle(/websocketstart server)
    err:=http.ListenAndServe(:1234http.Request){
    res.Write([]byte(hello world))
}
func instantMessage(w *websocket.Conn)  {
    var error error
    for {
        var reply string
        if  error= websocket.Message.Receive(w,&reply);error!=nil{
            log.Println(接受消息失败客户端:服务端:"+reply+time.Now().String()
        log.Println(msg)
        if error = websocket.Message.Send( nil {
            log.Println(发送消息失败)
            break
        }
    }
}

客户端代码:

<html>
head>
    title>好好学习</bodyscript type="text/javascript">
    var sock = null;
    // var wsuri = "wss://127.0.0.1:8080"; //本地的地址 是可以改变的哦
      wsuri "ws://localhost:1234/websocket; 本地的地址 是可以改变的哦


    window.onload function() {
        可以看到客户端JS,很容易的就通过WebSocket函数建立了一个与服务器的连接sock,当握手成功后,会触发WebScoket对象的onopen事件,告诉客户端连接已经成功建立。客户端一共绑定了四个事件。
        console.log(开始了 onload);
        sock new WebSocket(wsuri);
        建立连接后触发
        sock.onopen () {
            console.log( 建立连接后触发 connected to " + wsuri);
        }
         关闭连接时候触发
        sock.onclose (e) {
            console.log(关闭连接时候触发 connection closed ( e.code + ));
        }
         收到消息后触发
        sock.onmessage 收到消息后触发 message received:  e.data);
            document.getElementById('receive).innerHTML=e.data;
        }
        发生错误的时候触发
        sock.onerror (e) {
            console.log(发生错误时候触发wsuri)
        }
    };
     如果sock被关闭掉了 这里 也会报错的啊
     send() {
         msg  document.getElementById(message).value;
        sock.send(msg);
    };
scripth1>客户端formp>发送: textarea id="message" >我是陶士涵textarea>接收: ="receive" ></button onclick="send();">给服务器发送消息button>

?

?

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读