簡體   English   中英

套接字發送到 nodejs 服務器

[英]socket emit to nodejs server

我有一個 Node.js 服務器與 socket.io 在端口 4000 上偵聽。我已經能夠使 javascript 版本正常工作並發射到套接字。 此外,我有一個 Go 應用程序正在進行一些計算並將數據從 Go 服務器發送到 Node.js。

我想為此使用 sockets 因為它需要實時發生,但由於某些原因無法弄清楚如何將套接字事件從 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 連接的更多信息。 這是一個簡單的結構,它可以從套接字WriteRead

請在此處查看更多示例並分析代碼: https://golang.org/pkg/net/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM