?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

皇都游戲娛樂:使用Beetle實現HTML5使用的WebSocket服務示例BR服務端代碼

?

WebSocket是HTML5里供給的一種便于TCP長連接通訊的協議機制,跟著HTML5的遍及這種技巧的應用會變得越來越廣泛,因為Beetle可以機動地擴展不合的協議,那自然而然對WebSocket支持也是一件異常簡單的工作.對付WebSocket的協議闡發處置懲罰就不具體描述可以參考下載法度榜樣有完備協議包代碼,假如想更具體懂得Websocket的協議可以到這里:http://datatracker.ietf.org/doc/rfc6455/?include_text=1

下面講述若何應用Beetle異常方便地實現一個基于WebSocket的Hello wold法度榜樣.

辦事端代碼

class Program皇都游戲娛樂:WebSocketServer

{

static void Main(string[] args)

{

TcpUtils.Setup("beetle");

Program server = new Program();

server.Open(8088);

Console.WriteLine("websocket [email protected]");

System.Threading.Thread.Sleep(-1);

}

protected override void OnConnected(object sender, ChannelEventArgs e)

{

base.OnConnected(sender, e);

}

protected override void OnDisposed(object sender, ChannelDisposedEventArgs e)

{

base.OnDisposed(sender, e);

}

protected override void OnError(object sender, ChannelErrorEventArgs e)

{

base.OnError(sender, e);

}

protected override void OnWebSocketReceive(TcpChannel channel, DataPackage e)

{

Console.WriteLine("MessageType:{0}", e.Type);

Console.WriteLine("RequestPath:{0}", e.RequestPath);

if (e.Type == PackageType.text)

{

Console.WriteLine(e.ToString());

DataPackage dp = new DataPackage();

dp.Type = PackageType.text;

dp.Data.Encoding("hello " + e.ToString(), Encoding.UTF8);

channel.Send(dp);

}

}

}

以皇都游戲娛樂上便是一個完備的websocket辦事,代碼異常簡單WebSocketServer重寫OnWebSocketReceive即可,在事故中根據必要處置懲罰對應的DataPackage即可,對付DataPackage的布局和類型實現參考下載代碼.

Html代碼

html>

meta charset="utf-8" />

title>WebSocket Testtitle>

script language="javascript" type="text/javascript">

var wsUri = "ws://127.0.0.1:8088/";

var output;

function init() {

output = document.getElementById("output");

testWebSocket();

}

function testWebSocket() {

websocket = new WebSocket(wsUri);

websocket.onopen 皇都游戲娛樂= f皇都游戲娛樂unction (evt) { onOpen(evt) };

websocket.onclose = function (evt) { onClose(evt) };

websocket.onmessage = function (evt) { onMessage(evt) };

websocket.onerror = function (evt) { onError(evt) };

} function onOpen(evt) {

writeToScreen("CONNECTED");

}

function onClose(evt) { writeToScreen("DISCONNECTED"); }

function onMessage(evt) { document.getElementById('result').value = evt.data; }

function onError(evt) { writeToScreen('span style="color: red;">ERROR:span> ' + evt.data); }

function doSend(message) {websocket.send(message); }

function writeToScreen(message) {

var pre = document.createElement("p"); pre.style.wordWrap = "break-word"; pre.innerHTML = message; output.insertBefore(pre);

}

function OnConnect() {

wsUri = document.getElementById("url"皇都游戲娛樂).value;

init();

}

script>

body>

fieldset>

legend>WebSocket hello woldlegend>

p>span>Server url:span>input id="url" type="text"value="ws://127.0.0.1:8088/"/>input type="button" value="Connected" onclick="OnConnect()" />p>

p>span>Enter you name:span>input id="youname" type="text"value="test"/>input type="button" value="Submit" onclick="doSend(document.getElementById('youname').value)" />p>

p>span>Result:span>input id="result" type="text"value=""/>p>

fieldset>

div id="output">

div>

body>

html>

運行效果

這樣一個基于Hello wold的Websocket處置懲罰法度榜樣就完成.假如對Websocket感興趣的同伙可以下載源代碼懂得websocket協議闡發的道理,若何從byte[]闡發出對應的websocket協議.

下載代碼

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

河北十一选五开奖的 av黄色a片 免费a片在线 上证指数吧股吧 快乐双彩 竞彩足球比分即时m 广西快三 nba公牛vs热火打架 竞彩足球比分 10号雄鹿vs篮网啦啦队精彩灌篮 股票分析师工资高吗 午夜激情三级片 股票指数英文 美国a片快播 武汉小姐上门特色服务 银色雌狮4x 日本韩国台湾香港三级