non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

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年前の記事