基于HTML5的WebSocket的實例代碼
客戶端代碼:
<html><head><script>var socket;if ("WebSocket" in window) {var ws = new WebSocket("ws://127.0.0.1:8181");socket = ws;ws.onopen = function() {console.log('連接成功');};ws.onmessage = function(evt) {var received_msg = evt.data; document.getElementById("showMes").value+=evt.data+"/n";};ws.onclose = function() {alert("斷開了連接");};} else {alert("瀏覽器不支持WebSocket");}function login(){var message=document.getElementById("name").value+":"+document.getElementById("mes").value;socket.send(message);}</script></head><body><textarea rows="3" cols="30" id="showMes" style="width:300px;height:500px;"></textarea><br/><label>名稱</label><input type="text" id="name"/><br/><label>消息</label><input type="text" id="mes"/><button onclick="login();">發送</button></body></html>
winform服務端代碼:
注:需先引入Fleck包
using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;using Fleck;namespace socketService{public partial class Form1 : Form{public Form1(){InitializeComponent();CheckForIllegalCrossThreadCalls = false;}private void Form1_Load(object sender, EventArgs e){//保存所有連接var allSockets = new List<IWebSocketConnection>();//初始化服務端var server = new WebSocketServer("ws://0.0.0.0:8181");//開始監聽server.Start(socket =>{//有客戶端連接觸發socket.OnOpen = () =>{textBox3.Text += socket.ConnectionInfo.ClientIpAddress + " 連接 /r/n";allSockets.Add(socket);};//有客戶端斷開觸發socket.OnClose = () =>{textBox3.Text += socket.ConnectionInfo.ClientIpAddress + " 斷開連接 /r/n";allSockets.Remove(socket);};//接收客戶端發送的消息socket.OnMessage = message =>{textBox3.Text += socket.ConnectionInfo.ClientIpAddress + " 發送了消息:" + message + "/r/n";//發送接收到的消息給所有客戶端allSockets.ToList().ForEach(s => s.Send(message));};});}}}
總結
以上所述是小編給大家介紹的基于HTML5的WebSocket的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答