websocket icon indicating copy to clipboard operation
websocket copied to clipboard

How to extract a fd using this library?

Open kant777 opened this issue 3 years ago • 1 comments

I am trying to keep track of some user state in my application and I would like to get an integer fd of the connection so I can hash and keep track of it in my data structure. I tried below and I get the following error

reflect: call of reflect.Value.FieldByName on zero Value

having this functionality in the connection struct would really help.

netConn := websocket.NetConn(context.Background(), conn, websocket.MessageText)
func GetFdFromConn(conn net.Conn) int {
	tcpConn := reflect.Indirect(reflect.ValueOf(conn)).FieldByName("conn")
	fdVal := tcpConn.FieldByName("fd")
	pfdVal := reflect.Indirect(fdVal).FieldByName("pfd")
	return int(pfdVal.FieldByName("Sysfd").Int())
}

kant777 avatar Feb 21 '22 12:02 kant777

Right now there is no way but I will improve the API to add one.

nhooyr avatar Mar 05 '23 21:03 nhooyr