21/11/24 Go Reject Con 2021にて発表 https://moneyforward.connpass.com/event/228698/
21/11/24 Go Reject Con 2021にて発表 https://moneyforward.connpass.com/event/228698/
Golangの標準パッケージであるnet/httpを使ってHTTPルーターを自作する話です。 表紙は新書メーカーさんで作成しました。 https://yubais.net/tools/paperback-maker/ 追記: 要約版をqiitaに書いてあります。手短に知りたい場合はこちらが良いかもしれません。 https://qiita.com/bmf_san/items/312fac5b3132d8bee4ca 自作ルーターがawesome-goにリストアップされました :D https://github.com/avelino/awesome-go#routers 追記: コードのハイライトを修正しました。 追記: Go Conference 2021 Autumnで"net/httpでつくるHTTPルーター自作入門"というタイトルで発表しました。 https://speakerdec
Good evening I have a TCP server clients can connect to. Pretty straightforward. But the problem is, all my clients use mobile network and are constantly on the move. Losing connection without notifying the server via FIN or RST is a common situation. So the server has this lingering connection and thinks a client is online when in reality it is not. My first solution was to wait for a while; if a
Transcript Go Ͱ Network Programming ͢ΔͨΊ ͷΑ· Tomohiro Takezawa ࣗݾհ • ᖒ ༑ത • Github: ttakezawa • Twitter: @takezawa • גࣜձࣾKyashॴଐ • όοΫΤϯυશൠ • ಛʹ VISA QUICPay (Google Pay) ͷϓϩηγϯάγεςϜͳͲ ࣮ͱωοτϫʔΫϓϩάϥϛϯά • ࣮ࡍͷͱ͜ΖɺࣄͰ͏ػձ͋Δʁ • Kyash ͷۀͰඞਢͳͱ͜Ζ͕͋Δ • ΫϨδοτΧʔυͷϓϩηγϯάۀ • ϨΠϠʔͷཧղ͕ਂ·Δͱڧ͍ ͢͜ͱͱɺ͞ͳ͍͜ͱ • ͢͜ͱ • ιέοτϓϩάϥϛϯάશൠ • Go ʹ͓͚Δ I/O ͷΈ • ͞ͳ͍͜ͱ • HTTP • νϟωϧ ࠓͷΞδΣϯμ • ωοτϫʔΫϓϩάϥϛϯάͷجຊతͳΠϯ
フューチャーアーキテクトアドベントカレンダーの5日目の サーバーサイドレンダリングの代替としてPrerenderを試してみたの最後で、「Go実装について 長くなったので説明は省略します。だれかがGoアドベントカレンダーを落としたら書くかも?」と書いていたら、早速落とす人がいたらしいので、ハイジャックします。 リバースプロキシーはnet/http/httputilパッケージの ReverseProxyを使えば簡単につくれますよ、という説明はよく見かけるのですが、レスポンスを書き換える方法はまとまった情報がなかったので紹介します。 リクエストを書き換える go言語でリバースプロキシというブログのエントリーにある通りです。 向き先を書き換える、Directorというフック関数を設定してあげることで、向き先を変えられます。なお、このエントリーにあるように、この関数の中でrequestを書き換えるこ
I am moving my blog content to mdlayher.com. Please see the updated version of this content at: https://mdlayher.com/blog/network-protocol-breakdown-ethernet-and-go/ If you’re reading this article right now, chances are pretty good that there’s an Ethernet (IEEE 802.3) link somewhere between your device and the server hosting this blog. The Ethernet family of networking technologies are a fundamen
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog インフラエンジニア見習いの森本です。これまで数年ほどサーバーサイドエンジニアとして開発ばかりをしてきた人が最近インフラエンジニアになりました。 3月末に開催された Go Conference 2017 Spring で開発チームの後藤から弊社で開発・運用している AWS S3 互換の分散オブジェクトストレージ Dragon についての発表がありました。 Goでヤフーの分散オブジェクトストレージを作った話 私は Dragon の運用を担うチームに所属しており、本稿ではその業務の中で発生したトラブルシューティングについて紹介したいと思います。 分散オブジェクトストレージ Dragon で発生していた課題 Dragon で gorout
Code-Hex/pget - GitHub Parallel file download client linux カーネルのダウンロードが約1分で終わる様子 これは何なのか 簡単に言うと pget は Go 言語製の高速ダウンロードツールです。 wget っぽく気軽に実行できるように pget と名付けました。 作成の経緯 たまたま Nodejs で Range header に対してスレッドを使って分割ダウンロードするという ここの記事 を見かけたので今回これを並列処理を得意とする Go 言語で実装してみようと思い作成しました。 調べてみると Python や、Java などのほとんどの言語ですでに実装されてるようですが、どれもただ使えればいいという感じだったので、割と本気で作ってみました。(調べられてないだけの可能性高いです) 仕組み ファイルをダウンロードする時、ほとんどの場合が
Goとかで外部にリクエストを投げるようなプログラムを書くと、実際にどういうリクエストを投げて、どういうレスポンスを受けているのか一見分かりません。 WebアプリケーションならChromeのDeveloper Toolsを使えば簡単にいい感じに見ることができます。リクエストを投げるプログラムでもChromeのDeveloper Toolsを使って飛ばしているリクエストとレスポンスが見れるととても便利そうです。そんなことが実現できてしまう方法を紹介します。 kdzwinel/betwixt: Web Debugging Proxy based on Chrome DevTools Network panel. 今流行りのElectronアプリです。READMEに貼られているGifアニメを見れば全て察せるでしょう。Releases · kdzwinel/betwixtここからビルド済みのものをダ
Network programming with Go Jan Newmarch , jan.newmarch.name Head of Higher Education (ICT), Box Hill Institute Adjunct Senior Research Fellow, Faculty of IT, Monash University Adjunct Lecturer, School of Computing and Mathematics Charles Sturt University v1.0, 27 April 2012 An e-book on building network applications using the Google Go programming language (golang) This book has been revised to c
最近Go言語を勉強しています。リッチな言語とはいえないですがその分軽いですし、何より楽しいです。 golang.jpやA Tour of Goをひと通り読み終えたのでまずはサーバとクライアントでSocket通信(のうちのTCP通信)を行うプログラムを書いてみました。 これを書くにあたって以下のページが非常に参考になりました。実際かなりお手本にさせてもらっています。 net パッケージ - golang.jp os パッケージ - golang.jp 8.1 Socketプログラミング Golang Cafe #15 まとめ netパッケージ - taknb2nchのメモ 勉強、コーディングの手順としては golang.jpの必要なパッケージドキュメントを読む。 1を読んでどのようにコードを組んでいけば良いか分からなかったら参考になりそうなものを探す 参考にしているサイトで分からない関数が出
Go の標準パッケージである net/http を使えば簡単に HTTP サーバーを立てることができる。とは言うものの、自分はそのへんが実際どうなってるのか全然わかってない。つらい。ということで、Go の勉強も兼ねて net/http の動きを少しだけ追ってみることにした。 まず、net/http を用いたよく見かけるサンプルコードを書いてみる。 package main import ( "fmt" "log" "net/http" ) func poyo(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "poyo!") } func main() { http.HandleFunc("/", poyo) if err := http.ListenAndServe(":9090", nil); err != nil { l
簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く