Go语言实现websocket与前端交互

1、在https://www.golangtc.com/download/package下载第三方包websocket,点击Go!后,下载地址出现,点击就会下载第三方包


2、websocket会自动断开,看网上需要保持心跳,还有nginx的修改(没有生效),先用for死循环则不会断开,程序如下:

package websocketservice

import (
    . "domain/model"
    "infrastructure/log"
    "net/http"
    "time"

    "golang.org/x/net/websocket"
)

var ws *websocket.Conn

func GetWebsocketInstance() {
    http.Handle("/check", websocket.Handler(checkServiceHandler))
    http.Handle("/", http.FileServer(http.Dir(".")))
    err := http.ListenAndServe(":8087", nil)

    if err != nil {
        panic("ListenAndServe: " + err.Error())
    }
}

func checkServiceHandler(ws *websocket.Conn) {
    defer ws.Close()
    log.Error("begin")
    //  time.Sleep(60 * time.Second)
    for { //websocket若不实时发送数据,会自动断开
        time.Sleep(120 * time.Second)
        log.Error("Serviceresult", Serviceresult)
        err := websocket.JSON.Send(ws, Serviceresult)
        if err != nil {
            log.Error("send failure")
            //      break
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Linux 下使用 C 语言与前端 JavaScript 交互,可以使用 WebSocket 协议。WebSocket 是一种双向通信协议,它可以让客户端和服务器之间进行实时通信,而不需要像 HTTP 协议一样每次发送请求都要重新建立连接。 以下是一个基本的示例,展示了如何在 C 语言中使用 WebSocket前端 JavaScript 进行交互: 1. 首先,你需要使用 C 语言编写一个 WebSocket 服务器。可以使用第三方库,如 libwebsockets 来实现。这个库提供了一个简单的 API,可以轻松地创建 WebSocket 服务器。 2. 在前端,你需要使用 JavaScript 中的 WebSocket 对象来连接服务器。可以使用浏览器内置的 WebSocket 对象,也可以使用第三方库,如 socket.io。 3. 当客户端连接到服务器后,可以使用 WebSocket 对象的 onmessage 事件来监听来自服务器的消息。当有消息到达时,可以使用 JavaScript 处理它并将其显示在网页上。 4. 同样地,在 C 语言中,你也可以使用 libwebsockets 库来处理来自客户端的消息。在服务器端,可以使用 lws_callback_on_writable 函数来将消息发送回客户端。 下面是一个简单的示例代码,展示了如何在 C 语言中使用 WebSocket前端 JavaScript 进行交互: server.c: ```c #include <libwebsockets.h> static int callback(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { switch (reason) { case LWS_CALLBACK_ESTABLISHED: printf("Client connected\n"); break; case LWS_CALLBACK_RECEIVE: printf("Received message: %s\n", (char *) in); // Send response back to client lws_write(wsi, (unsigned char *) "Hello from server!", 19, LWS_WRITE_TEXT); break; default: break; } return 0; } int main(int argc, char *argv[]) { struct lws_context_creation_info info; struct lws_context *context; struct lws_protocols protocols[] = { { "websocket", callback, 0, 128 }, { NULL, NULL, 0, 0 } }; memset(&info, 0, sizeof(info)); info.port = 3000; info.protocols = protocols; context = lws_create_context(&info); if (!context) { printf("Failed to create WebSocket context\n"); return -1; } printf("WebSocket server running on port 3000...\n"); while (1) { lws_service(context, 1000); } lws_context_destroy(context); return 0; } ``` index.html: ```html <!DOCTYPE html> <html> <head> <title>WebSocket Example</title> </head> <body> <h1>WebSocket Example</h1> <p id="message"></p> <script> var socket = new WebSocket("ws://localhost:3000/websocket"); socket.onmessage = function(event) { console.log("Received message: " + event.data); document.getElementById("message").innerHTML = event.data; }; socket.onopen = function(event) { console.log("Connected to server"); }; </script> </body> </html> ``` 在该示例中,C 语言的 WebSocket 服务器在本地端口 3000 上运行。当客户端连接到服务器时,服务器将发送一个欢迎消息。然后,它将等待来自客户端的消息,并将其发送回客户端。在前端,JavaScript 将使用 WebSocket 对象连接到服务器,并监听来自服务器的消息。当有消息到达时,JavaScript 将在网页上显示它。 注意:这只是一个基本示例,实际应用中可能需要更复杂的逻辑和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值