使用 weaving-socket教學-入門socket與websocket

首先把項目下載下來: http://git.oschina.net/dreamsfly900/universal-Data-Communication-System-for-windowsjavascript

還有一個同胞項目html

.NET Core的weaving-socket項目前端

http://git.oschina.net/dreamsfly900/weaving-socket-core java

 

新版本更新後MyInterface 變動命名WeaveBase。TCPCommand變動命名,WeaveTCPCommand請務必注意。jquery

普通的socketgit

新版本更新後MyInterface 變動命名WeaveBase。TCPCommand變動命名,WeaveTCPCommand請務必注意。web

一個通訊項目須要服務端與客戶端兩部分,咱們先開始寫一個服務端。windows

服務端:服務器

建立一個控制檯程序,引用類庫 MyInterface與TCPServerwebsocket

而後編寫代碼

static void Main(string[] args)
        {
            p2psever server = new p2psever();//初始化類庫
            server.receiveevent += Server_receiveevent;//註冊接收事件
//固然還有不少其餘的事件能夠註冊,好比新增鏈接事件,鏈接斷開事件
            server.start(8989);//啓動監聽8989端口
             
           
            Console.WriteLine("8989listen:");
            Console.ReadKey();
        }

        private static void Server_receiveevent(byte command, string data, System.Net.Sockets.Socket soc)
        {
            Console.WriteLine(data);//輸出客戶端發來的信息
        }

客戶端:

而後建立一個控制檯程序,引用類庫 MyInterfaceTCPclient

而後編寫代碼

P2Pclient client = new P2Pclient(false);//初始化類庫
static void  Main(string[] args)
        {
           
            client.timeoutevent += Client_timeoutevent;//註冊鏈接超時事件
            client.receiveServerEvent += Client_receiveServerEvent;//註冊接收事件
              client.start("127.0.0.1", 8989, false);//啓動鏈接127.0.0.1服務器的8989端口。不須要服務器TOKEN
            System.Threading.Thread.Sleep(1000);
            Console.WriteLine("server link OK:");
            client.send(0x1, "test2017-5-5");//給服務器發送信息,參數1,0x01指令,指令能夠設置0-254,其中0x9c與0xff,是保留指令不能使用。參數2:發送string類型的數據。
            Console.WriteLine("send:test2017-5-5");
            Console.ReadKey();
        }

        private static void Client_receiveServerEvent(byte command, string text)
        {
          //command是從服務器發來的指令
          //text是從服務器發來的數據
        }

        private static void Client_timeoutevent()
        {
         //鏈接超時或斷線會啓動此事件
            client。Restart(false);//從新鏈接
        }

 

最後:先運行服務器端,在運行客戶端,就能在服務器端看到 test2017-5-5 的輸出內容。

 

websocket

服務端:服務端內容與通常的socket,如出一轍,只須要把p2psever server = new p2psever(); 這句話換成

Webp2psever server = new Webp2psever();  就能夠了,其餘的用法與方法與p2psever 徹底一致,都是繼承與ITcpBasehelper接口

客戶端:

在項目中建立一個web項目,新建一個html文件

在HTML文件中引用

<script src="websocket.js"></script>
<script src="scripts/jquery-1.4.1.min.js"></script>

這兩個文件,websocket.js在項目前端WEB示例中能夠找到,或者文件夾WebApplication1 下面也能夠找到。

編寫JS代碼

var socket;
        // 鏈接服務端
        function connect() {
             // ip: '127.0.0.1', port: 8989, 要連接的服務器的IP與端口
                    //conn: 鏈接成功事件
                    //, recData: 接收數據事件
                    //, close: 鏈接關閉事件
                     //, error: 鏈接錯誤事件
                    //  , jump: 服務器資源超過最大上限,推薦跳轉其餘服務器的事件

            socket = new UDCsocket({
                ip: '127.0.0.1', port: 8989, conn: onopen
                    , recData: onmessage
                    , close: function () { alert("鏈接關閉"); }
                     , error: function (msg) { alert("鏈接錯誤" + msg); }
                      , jump: function (ip) { alert("服務器超過最大鏈接,請鏈接其餘服務器:" + ip); }
            });
        }
 function onopen(msg) {//鏈接後啓動一次
            if (msg == 'token') {//鏈接後若是收到token會再次啓動這個方法msg 帶有token標識
               
               
            }

        }
        function onmessage(text) {
           //text 就是服務器發來的數據
            
        }

這樣就能夠,就是這麼簡單,你學會了嗎?

相關文章
相關標籤/搜索