首先把項目下載下來: 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);//輸出客戶端發來的信息 }
客戶端:
而後建立一個控制檯程序,引用類庫 MyInterface與TCPclient
而後編寫代碼
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 就是服務器發來的數據 }
這樣就能夠,就是這麼簡單,你學會了嗎?