nodejs-websocket 的简单用法和安装
网上很多的websocket我都看不懂,看了个视频才慢慢懂了点
视频链接:https://www.imooc.com/learn/861
以下都是根据老师的步伐走的
先打开cmd 或者 powershell 键入 cd 进入服务端的地址,再键入 npm install nodejs-websocket
还有nodejs也要安装 地址:https://nodejs.org/en/
安装成功后,在nodejs-websocket下新建js
js 服务端大致代码:
var ws = require('nodejs-websocket');
var port=3000
var server = ws.createServer(function(conn){
//受到连接触发//
//在服务端cmd安装npm install nodejs-websocket//
console.log('new connection');
conn.on("text",function(str){
// 收到信息触发 接收 //
console.log("received"+str)
boardcast(str) // 广播消息 //
conn.sendText(str) // 发送 数据 //
})
conn.on("close",function(code,reason){
// 断开连接触发 //
console.log("connection closed")
})
conn.on("error",function(err){
// 出错触发 //
console.log("header err")
console.log(err)
})
function boardcast(str){ // 广播 //
// server.connections 保存每个连接进来的用户 //
server.connections.forEach(function(conn){ // .forEach 是调用数组里每个元素 //
conn.sendText(str)
})
}
}).listen(port)
console.log("websocket server listen port is" + port)
接下来看看客户端的大致代码:
<html>
<head>
<title>first socket</title>
</head>
<body>
<h1>myfitst room</h1>
<input type="text" id="snedTxt" />
<button id="sendb">发送</button>
<div id="recv"></div>
<script type="text/javascript">
var ws = new WebSocket("ws://localhost:3000/");// 设置服务器地址 //
ws.onopen=function(){ // onopen 连接触发 //
console.log("websocket open");
document.getElementById("recv").innerHTML="Connected";
// innerHTML 可以 获取 也可以 插入 // }
ws.onclose=function(){ // onclose 断开触发 //
console.log("websocket close");
}
ws.onmessage =function(e){ // onmessage 接收到信息触发 //
console.log(e.data);
document.getElementById("recv").innerHTML = e.data; }
document.getElementById("sendb").onclick=function(){ // 监测 id=“sendb”的 按钮 触发 onclick 就会发送数据 send //
var txt = document.getElementById("snedTxt").value;
ws.send(txt);
}
</script>
</body>
</html>
html 直接运行
js 则要cmd cd到根目录 键入 node 文件名.js
这样就算成功了
nodejs-websocket 的简单用法和安装的更多相关文章
- nodejs与websocket模拟简单的聊天室
nodejs与websocket模拟简单的聊天室 server.js const http = require('http') const fs = require('fs') var userip ...
- 用nodejs搭建一个简单的服务器
使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- openstack(liberty):部署实验平台(二,简单版本软件安装 part2)
继续前面的part1,将后续的compute以及network部分的安装过程记录完毕! 首先说说compute部分nova的安装. n1.准备工作.创建数据库,配置权限!(密码依旧是openstack ...
- openstack(liberty):部署实验平台(二,简单版本软件安装 part1)
软件安装过程中,考虑到现在是一个实验环境,且也考虑到规模不大,还有,网络压力不会大,出于简单考虑,将各个节点的拓扑结构改了一下,主要体现在网络节点和控制节点并在了一起.在一个服务器上安装! 到目前位置 ...
- mysql安装简单教程(自动安装/配置安装)
mysql安装简单教程(自动安装/配置安装) 1.1前言: 由于特殊原因,在最近2-3个月里mysql真是安装了无数遍,每次安装都要上网找教程,每个教程基本都不一样,因此还是自己写下来比较好,毕竟自己 ...
- nodejs实现最简单的爬虫
本文将以抓取百度搜索结果中关键词的相关搜索为例子,教会大家以nodejs制作最简单的爬虫: 开始之前呢,先来个公众号求粉: 将使用的node模块及属性介绍: request: ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 用nodejs搭建一个简单的服务监听程序
作为一个从业三年左右的,并且从事过半年左右PHP开发工作的前端,对于后台,尤其是对以js语言进行开发的nodejs,那是比较有兴趣的,虽然本身并没有接触过相关的工作,只是自己私下做的一下小实验,但是还 ...
随机推荐
- typescript 属性默认值使用箭头函数 this指向问题
今天注意到前端小伙伴用react 定义component class的方法的时候是通过箭头函数的方式,表示好奇. class Test extends React.Component { public ...
- react-redux-store
store是联系state 和 reducer的部分 Store 有以下职责: 维持应用的 state: 提供 getState() 方法获取 state: 提供 dispatch(action) 方 ...
- 根据要求写SQL 语句
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- JDK 1.8 -> 1.7
电脑刚开始装的是1.8 version, 然后又需要用到1.7. 所以就要把1.8 降为1.7, 网上有很多说把1.8删掉,这种做法我是不建议的,那么要用的时候呢?又得装回来多蛋疼.. JDK 1.8 ...
- 信息技术手册可视化进度报告 基于BeautifulSoup框架的python3爬取数据并连接保存到MySQL数据库
老师给我们提供了一个word文档,里面是一份信息行业热词解释手册,要求我们把里面的文字存进数据库里面,然后在前台展示出来. 首先面临的问题是怎么把数据导进MySQL数据库,大家都有自己的方法,我采用了 ...
- C#获取常用的路径
常用的这两个足够了,其他需要的自行百度 //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名). string str = System.Diagnost ...
- C++编程入门
学习一门新的程序设计语言的最好方法就是练习编写程序. 每个C++程序都包含一个或多个函数,其中一个必须命名为main.操作系统通过调用main来运行C++程序. 一个函数定义包含四个部分:返回类型:函 ...
- element 多个文件上传多次http请求解决方法
第一步 action="#" 第二步 :auto-upload = "false" 第三步 给元素绑定click事件触发提交方法,注意,把其他没有用的文件都给去 ...
- sqlite比较时间秒
julianday(datetime('now','localtime'))*86400 -julianday("你的时间字段")*86400>0
- ES5数组、对象常用方法总结
数组方法: Array.isArray(items);判断判断一个变量是否包含数组数据: forEach(function(value, index, fullArray){ }); every(fu ...