go websocket

栏目: 后端 · 发布时间: 7年前

内容简介:获得相应包支持:go get golang.org/x/net/websocket解释:(1)http.Handle("/", websocket.Handler(Echo))

获得相应包支持:go get golang.org/x/net/websocket

package main

import (
    "log"
    "net/http"
    "os"
    "golang.org/x/net/websocket"
)

func main() {
    log.Println(os.Args[0]) //第一个参数,显示文件路径
    http.Handle("/", websocket.Handler(Echo))
    if err := http.ListenAndServe(":8088", nil); err != nil {
        log.Println(err)
    }
}

func Echo(ws *websocket.Conn) {
    for {
        var raply string
        if err := websocket.Message.Receive(ws, &raply); err != nil { //get infomation,write in adress
            log.Println("can't receive")
            break
        }
        msg := "Received:" + raply
        log.Println(msg)
        if err := websocket.Message.Send(ws, "come back infomation"); err != nil { //send infomation
            log.Println("can't send")
            break
        }
    }
}

解释:

(1)http.Handle("/", websocket.Handler(Echo))

主函数中的handle函数,将路由和相关的方法联系起来,不过要经过转化

(2)func Echo(ws *websocket.Conn)

这个函数中实现了逻辑的实行,for循环一直处理用户请求

其中: websocket.Message.Receive(ws, &raply)实现了数据的接收,存入对应的内存地址。

websocket.Message.Send(ws, "come back infomation")发送相应的数据,前台可以接收这个数据。

以下是前台模拟

192.168.149.1是我自己电脑的IP,根据自己的IP不同,提交的地址不一样,在这里改成自己的IP地址或者想要提交的服务器地址即可

<html>
    <head>
        <title></title>
    </head>
    <body>
        <script>
        var sock=null
        var wxurl="ws://192.168.149.1:8088"
        window.onload=function(){
            sock= new WebSocket(wxurl)
            sock.onopen = function(){
                console.log("connect to "+wxurl)
            }
            sock.onmessage = function(e){
                console.log("message:"+e.data)
                alert(e.data)
                $("#cs").text(e.data)
            }
            sock.onclose = function(e){
                console.log("close:"+e.code)
            }
        }

        function send(){
            var msg = document.getElementById("ms").value
        sock.send(msg)
        }
        </script>
        <form>
            <input id="ms" type="text" value="hello word" >
           <label id="cs"></label>
        </form>
        <button onclick="send()" >push</button>
    </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML5+CSS3精致范例辞典

HTML5+CSS3精致范例辞典

杨东昱 / 清华大学出版社 / 2013-1 / 48.00元

《HTML5+CSS3精致范例辞典(全彩印刷)》是专为希望成为网页设计师的学习者打造的工具书,书中详细说明了设计网页所需的HTML标记语言,对HTML5的网页标签规范作了完整说明,如元素标签的功能、属性以及如何使用等。有了基本网页制作能力,如何让网页更出色,版面更富变化、更易维护管理,那就得靠CSS帮忙了。《HTML5+CSS3精致范例辞典(全彩印刷)》还详细解说了最新CSS3的样式元素,除了说明......一起来看看 《HTML5+CSS3精致范例辞典》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具