non vorrei lavorare

2020年度からの小学校プログラミング教育の必修化を親として迎えるブロガーの書く、子供との日常

go modulesでSocket.ioからWebSocketに移行せずに済んだ件

こんにちは。次男も来年からは夏休みに宿題がありますが、奥さんが、前年の長男の自由研究を行えば、良いじゃね?って言ってます。そんな訳で、長男はあとは大きな課題は交通安全ポスターです。あおり運転ネタとか思いつきますが、学校に提出するので自粛かなw@kjunichiです。

背景

goのデスクトップマスコットgopheronでちょっと前からSocket.io互換のモジュールを最新版を利用すると ビルドエラーとなってしまう状態だった。

しかも、最新版のGo版のsocket.ioの互換ライブラリがブロードキャストに対応しなくなってしまったので、 この機会に勉強もかねて、素のWebSocketでの実装に移行しようかと考えていた。

goの新しいモジュール管理方式

npmやmrubyでは依存するライブラリのブランチ等を指定することができ、この問題は回避できていた。 が、goはバージョンを指定することができず、昔から、あれこれ回避する方法が考えられていたものの、 決定打はなかった模様。。。

gopheronでの対応

GO111MODULE=on go mod init

go.moduleというファイルを作成して、これに以下の内容を記述

module github.com/kjunichi/gopheron

go 1.12

require github.com/googollee/go-socket.io v1.0.1

おわりに

go modulesを知って、当面は以前の版を指定することで、この問題を回避できた。

関連記事

7年前の記事