基于HTML5的WebSocket的实例代码


Posted in HTML / CSS onAugust 15, 2018

基于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包

基于HTML5的WebSocket的实例代码

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的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

HTML / CSS 相关文章推荐
CSS3实现粒子旋转伸缩加载动画
Apr 22 HTML / CSS
纯CSS3实现鼠标悬停提示气泡效果
Feb 28 HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 HTML / CSS
CSS3中的content属性使用示例
Jul 20 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
Nov 01 HTML / CSS
用canvas实现图片滤镜效果附演示
Nov 05 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
Mar 25 HTML / CSS
canvas 下载二维码和图片加水印的方法
Mar 21 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
Dec 19 HTML / CSS
HTML中的表格元素介绍
Feb 28 HTML / CSS
基于CSS制作创意端午节专属加载特效
Jun 01 HTML / CSS
微信小程序纯CSS实现无限弹幕滚动效果
Sep 23 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
Aug 24 #HTML / CSS
Html5移动端弹幕动画实现示例代码
Aug 27 #HTML / CSS
Html5页面在微信端的分享的实现方法
Aug 30 #HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 #HTML / CSS
html5中去掉input type date默认样式的方法
Sep 06 #HTML / CSS
html5新特性与用法大全
Sep 13 #HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 #HTML / CSS
You might like
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
jquery cookie插件代码类
2009/05/26 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
js实现消息滚动效果
2017/01/18 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python+selenium+autoit实现文件上传功能
2017/08/23 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python怎么判断素数
2020/07/01 Python
python批量生成条形码的示例
2020/10/10 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
思想品德自我鉴定
2013/10/12 职场文书
商铺门前三包责任书
2014/07/25 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
详解Vue router路由
2021/11/20 Vue.js