登录
首页 >  Golang >  Go问答

套接字发送到nodejs服务器

来源:stackoverflow

时间:2024-04-14 09:57:34 168浏览 收藏

golang学习网今天将给大家带来《套接字发送到nodejs服务器》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我有一个 node.js 服务器,其中 socket.io 监听端口 4000。我已经能够使 javascript 版本正常工作并发送到套接字。另外,我有一个 go 应用程序,它正在进行一些计算并将数据从 go 服务器发送到 node.js。

我想为此使用套接字,因为它需要实时发生,但由于某些原因无法弄清楚如何从 go 服务器向 node.js 服务器发出套接字事件。

知道如何实现这一点。这是我的 node.js 代码:

var express = require('express');
var socket = require('socket.io');

// app setup
var app = express();
var server = app.listen(4000, function(){
    console.log('listening for requests on port 4000,');
});

// static files
app.use(express.static('public'));

var io = socket(server);
io.on('connection', (socket) => {

    socket.on('join', function(data){
        console.log('get join');
    });

});

在我的 go 应用程序中,当我获得此端点时,我想发送到 node.js 服务器

mux.GET("/socket", SendSocketRequest)
func SendSocketRequest(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
 // emit to the Node.js app
}

解决方案


我不能保证它会工作,我没有测试这段代码。但它可能看起来像:

package main

import (
    "net"
    "os"
    "fmt"
    "io/ioutil"
)

func checkError(err error) {
    if err != nil {
        panic(err)
    }
}

func main() {

    tcpAddr, err := net.ResolveTCPAddr("tcp4", "localhost:4000")
    checkError(err)

    conn, err := net.DialTCP("tcp", nil, tcpAddr)
    checkError(err)

    _, err = conn.Write([]byte("Some data written to the server\n"))
    checkError(err)

    result, err := ioutil.ReadAll(conn)
    checkError(err)
    fmt.Println("Result is: ")
    fmt.Println(string(result))

    os.Exit(0)
}

您应该阅读有关 tcp 连接的更多信息。这是一个简单的结构,能够将 write 写入或从套接字读取

请在此处查看更多示例并分析代码:https://golang.org/pkg/net/

今天关于《套接字发送到nodejs服务器》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>