Example of simple websocket connection from client

huangapple go评论100阅读模式
英文:

Example of simple websocket connection from client

问题

我想将这段在Node中运行的JavaScript代码改写成Go语言。

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "github.com/googollee/go-socket.io"
  6. )
  7. func main() {
  8. socket, err := socketio.Dial("http://botws.generals.io")
  9. if err != nil {
  10. log.Fatal(err)
  11. }
  12. socket.On("connect", func() {
  13. fmt.Println("Connected to server.")
  14. })
  15. // 其他代码...
  16. socket.Close()
  17. }

请注意,这里使用了 go-socket.io 库来处理Socket.IO连接。你可以使用 go get 命令安装该库:

  1. go get github.com/googollee/go-socket.io

希望对你有帮助!如果你有其他问题,请随时提问。

英文:

I would like to rewrite this JavaScript (run in Node) into Go.

  1. let io = require('socket.io-client');
  2. let socket = io('http://botws.generals.io');
  3. socket.on('connect', function() {
  4. console.log('Connected to server.');
  5. });

(I've tried this library unsuccessfully; I can elaborate on my noob attempts if that helps)

答案1

得分: 2

好的,以下是翻译好的代码:

  1. package main
  2. import (
  3. "github.com/graarh/golang-socketio"
  4. "github.com/graarh/golang-socketio/transport"
  5. "log"
  6. )
  7. func main() {
  8. transport := transport.GetDefaultWebsocketTransport()
  9. ws_url := "ws://botws.generals.io/socket.io/?EIO=3&transport=websocket"
  10. client, err := gosocketio.Dial(ws_url, transport)
  11. if err != nil {
  12. log.Fatal(err)
  13. }
  14. client.On(gosocketio.OnConnection, func(c *gosocketio.Channel, args interface{}) {
  15. log.Println("已连接!")
  16. })
  17. // 阻塞以给客户端连接的时间
  18. select {}
  19. client.Close()
  20. }

请注意,我只翻译了代码部分,其他内容都被忽略了。

英文:

Ok, got it working. There was a different URL I had to use.

  1. package main
  2. import (
  3. "github.com/graarh/golang-socketio"
  4. "github.com/graarh/golang-socketio/transport"
  5. "log"
  6. )
  7. func main() {
  8. transport := transport.GetDefaultWebsocketTransport()
  9. ws_url := "ws://botws.generals.io/socket.io/?EIO=3&transport=websocket"
  10. client, err := gosocketio.Dial(ws_url, transport)
  11. if err != nil {
  12. log.Fatal(err)
  13. }
  14. client.On(gosocketio.OnConnection, func(c *gosocketio.Channel, args interface{}) {
  15. log.Println("Connected!")
  16. })
  17. // Block to give client time to connect
  18. select {}
  19. client.Close()
  20. }

huangapple
  • 本文由 发表于 2017年2月22日 00:51:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/42373320.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定