Skip to content

makew0rld/peerjs-go

 
 

Repository files navigation

Golang PeerJS

A Golang port of PeerJS

Implementation

  • Datachannel
  • Mediachannel
  • Test coverage > 80%
  • Signalling server
  • Interoperability tests

Usage example

See _examples folder

	peer1, _ := NewPeer("peer1", NewOptions())
	defer peer1.Close()

	peer2, _ := NewPeer("peer2", NewOptions())
	defer peer2.Close()

	peer2.On("connection", func(data interface{}) {
		conn2 := data.(*DataConnection)
		conn2.On("data", func(data interface{}) {
			// Will print 'hi!'
			log.Printf("Received: %v\n", data)
		})
	})

	conn1, _ := peer1.Connect("peer2", nil)
	conn1.On("open", func(data interface{}) {
		for {
			conn1.Send([]byte("hi!"), false)
			<-time.After(time.Millisecond * 1000)
		}
	})

	select{}

Peer server

A docker image for the GO based peer server is available at opny/peer-server built for Raspberry Pi and PCs

Unsupported features

  • Payload de/encoding based on js-binarypack is not supported.
  • Message chunking (should be already done in recent browser versions)

About

Golang PeerJS implementation

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 97.0%
  • Makefile 2.0%
  • Other 1.0%