|
|
6#

楼主 |
发表于 2016-8-8 07:40:07
|
只看该作者
准备信令服务器
本帖最后由 zangcf 于 2016-8-8 08:09 编辑
这个配置比较复杂,主要牵扯到云端服务器能否翻墙的问题:
========================================================
1,首先找一个本地的ubuntu桌面系统,保证可以使用翻墙工具
2,下载go程序:进入网站下载 http://www.golangtc.com/download
go1.6.2.linux-amd64.tar.gz
3,安装go环境
解压缩- <font color="#333333">tar xzvf </font><font color="#333333">go1.6.2.linux-amd64.tar.gz</font>
复制代码
将生成一个go的目录,使用su的权限- <div class="blockcode"><blockquote>root@iZ949sqo4m3Z:~# mv go /usr/local/
- root@iZ949sqo4m3Z:~# vi .profile
- # ~/.profile: executed by Bourne-compatible login shells.
- if [ "$BASH" ]; then
- if [ -f ~/.bashrc ]; then
- . ~/.bashrc
- fi
- fi
- export GOROOT="/usr/local/go"
- export GOPATH="$HOME/collider_root"
- export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ga
- mes:/usr/local/games:/root/google_appengine:/root/google_appengine::$GOROOT/bin
- mesg n
- ~
- ~
- ~
- ~
- ~
- ~
- ~
- ~
- ~
- ".profile" 13L, 367C written
- root@iZ949sqo4m3Z:~# source .profile
- root@iZ949sqo4m3Z:~# mkdir collider_root
- root@iZ949sqo4m3Z:~# cd collider_root/
- root@iZ949sqo4m3Z:~/collider_root# mkdir src
- root@iZ949sqo4m3Z:~/collider_root# cd src/
- root@iZ949sqo4m3Z:~/collider_root/src# echo $GOPATH
- /root/collider_root
- root@iZ949sqo4m3Z:~/collider_root/src# cp $HOME/apprtc_root/src/collider/collider ./
- cp: omitting directory ?root/apprtc_root/src/collider/collider?
- root@iZ949sqo4m3Z:~/collider_root/src# cp -r $HOME/apprtc_root/src/collider/collider ./
- root@iZ949sqo4m3Z:~/collider_root/src# cp -r $HOME/apprtc_root/src/collider/collidermain ./
- root@iZ949sqo4m3Z:~/collider_root/src# $HOME/apprtc_root/src/collider/collidertest
- -bash: /root/apprtc_root/src/collider/collidertest: Is a directory
- root@iZ949sqo4m3Z:~/collider_root/src# vi $GOPATH/src/collidermain/main.go
- // Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
- // Use of this source code is governed by a BSD-style license
- // that can be found in the LICENSE file in the root of the source
- // tree.
- package main
- import (
- "collider"
- "flag"
- "log"
- )
- var tls = flag.Bool("tls", true, "whether TLS is used")
- var port = flag.Int("port", 443, "The TCP port that the server listens on")
- var roomSrv = flag.String("room-server", "https://120.76.203.222", "The origin of the room server")
- func main() {
- flag.Parse()
- log.Printf("Starting collider: tls = %t, port = %d, room-server=%s", *tls, *port, *roomSrv)
- "collidermain/main.go" 25L, 678C written
- root@iZ949sqo4m3Z:~/collider_root/src# vi $GOPATH/src/collider/collider.go
- // Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
- // Use of this source code is governed by a BSD-style license
- // that can be found in the LICENSE file in the root of the source
- // tree.
- // Package collider implements a signaling server based on WebSocket.
- package collider
- import (
- "crypto/tls"
- "golang.org/x/net/websocket"
- "encoding/json"
- "errors"
- "io"
- "io/ioutil"
- "log"
- "net/http"
- "strconv"
- "strings"
- "time"
- )
- const registerTimeoutSec = 10
- /ListenAndServeTLS
- tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
- tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
- tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
- tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
- tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
- },
- PreferServerCipherSuites: true,
- }
- server := &http.Server{ Addr: pstr, Handler: nil, TLSConfig: config }
- e = server.ListenAndServeTLS("/etc/nginx/apprtc.91xuepai.com.crt
- ", "/etc/nginx/apprtc.91xuepai.com.key")
- } else {
- e = http.ListenAndServe(pstr, nil)
- }
- if e != nil {
- log.Fatal("Run: " + e.Error())
- }
- }
- // httpStatusHandler is a HTTP handler that handles GET requests to get the
- "collider/collider.go" 215L, 6275C written
- root@iZ949sqo4m3Z:~/collider_root/src#
复制代码
10,然后重复上面:
- go get collidermain
- go install collidermain
复制代码
11,运行信令服务器:
- $GOPATH/bin/collidermain -port=8089 -tls=true
复制代码
如何测试信令服务器是否可以工作呢?
|
|