java node websocket_nodejs怎么实现webSocket接口即时通讯服务?

websocket

工作方式:广播和收听 # 使用场景:金融/聊天室/……

websocket:服务器支持广泛(node/java/php/c#……) 原生API操作复杂 可以使用第三方模块:socket.io 是在websocket的基础上创建的模块 优点:简单

下载

服务器端

npm i socket.io

客户端

使用

// 工作方式:事件绑定与事件触发完成发送数据与接收数据

1. 服务器(发送), 客户端(接收)

a.服务器 socket.emit("fun", data) // 服务器触发事件fun并传递参数data

b.客户端 client.on("fun", (data) => { }) //客户端绑定事件fun,并接收参数data

2. 客户端(发生), 服务器(接收)

a.服务器 socket.on("fun", (data) => { }) //服务器绑定事件fun,接收参数data

b.客户端 client.emit("fun", data) //客户端触发事件并传递参数data

示例

服务器

// 创建web服务器

var server = require("http").createServer();

// 创建io对象

var io = require("http://socket.io")(server);

// 绑定监听端口

server.listen(3000)

// 为io绑定默认事件connection: 客户端连接到服务器自动触发-- >

io.on("connection", (socket) => {

console.log("客户连接到服务器")

/**socket: 是一个对象, 与客户端通讯

触发客户端事件 / 绑定事件等待客户端触发*/

// 接收客户端数据

socket.on("abc", (data) => { })

// 向客户端发送数据

socket.emit("bcd", "你订的餐到了")

// 向客户端广播发送数据

io.emit("www", data)

})

// 客户端断开连接触发事件

io.on("disconnection", () => { })

客户端

//(1)连接服务器

var client = io("ws://127.0.0.1:3000");

//(2)接收服务器数据

client.on("bcd", (data) => {

console.log("接收到服务器数据:" + data);

})

//(3)向服务器发送数据

client.emit("abc", "快递到了");

//(4)接收服务器发送广播消息

client.on("www", (data) => {

console.log("服务器广播消息" + data);

})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java与sql2005连接数据库_Java链接数据库SQl Server2005

Java链接数据库SQL Server2005步骤:1.到微软官方网站下载2005的jdbc并解压,获得文件sqljdbc.jar。本人使用的是sqljdbc_1.2,解压后即为该文件。sql jdbc 1.2下载地址:2.将sqljdbc.jar拷贝到C:\Program Files\Java\jre1.5.0_08\lib…

Microsoft Team Foundation Server 2010安装指南

索引:介绍安装操作系统准备安装过程中的需要的用户账户安装IIS 7.0安装SQL Server 2008安装SQL Server 2008 SP1补丁安装TFS 2010配置TFS 2010(以高级配置为例)配置TFS Build服务安装序列号 正文: 介绍:微软官方发布了Microsoft T…

IE本地网页弹出黄条“限制网页脚本”

Internet选项 高级——点选“允许活动内容在我的计算机上的文件中运行”

java提高班_2020年最新天码营-Java提高班,资源教程下载

课程名称2020年最新天码营-Java提高班,资源教程下载课程介绍初学者先广在精,关注代码背后的实现,关注内功修炼,了解实现原理和思想,形成自己完整的技术体系,知识成片之后就容易触类旁通,进步的速…

Swift3.0语言教程替换子字符串

Swift3.0语言教程替换子字符串 Swift3.0语言教程替换子字符串,替换子字符串其实就是将字符串中的子字符串删除,然后再进行添加。为了让这一繁琐的过程变的简单,NSString提供了替换子字符串的3个方法,这3个方法分别为:replacingOcc…

反射的使用

//加载dll库Assembly dll Assembly.LoadFile("E:\whq\code\Test\DLLConsole\bin\Debug\Test.UI.dll");//获取所有类型(类、接口……)Type[] typeClass dll.GetTypes();foreach (Type t in typeClass){//获取所有公共成员FieldInfo[] fields …

7-10外连接查询

外连接: 至少返回一个表中的所有记录,根据匹配条件有选择性的返回另一张表的记录。 外连接特点: 1:参与外连接的表有主从之分。 2:以主表的每行数所匹配的从表的数据列将符合条件的数据值直接返回到结果集中。 3:对那些…

java调用dubbo服务器_dubbo源码分析-服务端注册流程-笔记

前面,我们已经知道,基于spring这个解析入口,到发布服务的过程,接着基于DubboProtocol去发布,最终调用Netty的api创建了一个NettyServer。那么继续沿着RegistryProtocol.export这个方法,来看看注册服务的代码…

React - S1

资料: 1. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 进度: 教程 - 高级内容remaining; 参考remaining js 与 的区别[转] 1、对于string,number等基础类型,和是有区别的 1)不同类型间比较,之比较“转…

java错位_java – 如何保护自己免受参数错位的影响

假设我有这个重要的方法:int generateId(int clientCode, int dataVersion) {return clientCode * 2 dataVersion % 2;}这两个参数都是int,因此使用错误的参数调用此方法非常容易,例如generateId(dataVersion,clientCode).它将被成功编译和执行.但生成的id将完全错…

(csc)Visual C# 2010 编译器选项.

Visual C# 2010 编译器选项 - 输出文件 -/out:<文件> 指定输出文件名(默认值: 包含主类的文件或第一个文件的基名称)/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)/target:winexe …

力扣Java解数独_LeetCode 力扣 37. 解数独

题目描述(困难难度)给定一个数独棋盘&#xff0c;输出它的一个解。解法一 回溯法从上到下&#xff0c;从左到右遍历每个空位置。在第一个位置&#xff0c;随便填一个可以填的数字&#xff0c;再在第二个位置填一个可以填的数字&#xff0c;一直执行下去直到最后一个位置。期间如…

T-SQL像数组一样处理字符串、分割字符串,遍历数组

T-SQL对字符串的处理能力比较弱&#xff0c;比如我要循环遍历象1,2,3,4,5这样的字符串&#xff0c;如果用数组的话&#xff0c;遍历很简单&#xff0c;但是T-SQL不支持数组&#xff0c;所以处理下来比较麻烦。下边的函数&#xff0c;实现了象数组一样去处理字符串。 一、按指定…

jquery 获取鼠标和元素的坐标点

获取当前鼠标相对img元素的坐标[javascript] view plaincopy $(img).mousemove(function(e) { varpositionXe.pageX-$(this).offset().left; //获取当前鼠标相对img的X坐标 varpositionYe.pageY-$(this).offset().top; //获取当前鼠标相对img的Y坐标 console…

java上转型对象特点_Java 浅析三大特性之一继承

上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类&#xff0c;注重于代码和功能复用的语言。Java实现代码复用的方式有很多&#xff0c;这里介绍一个重要的复用方式——继承。在介绍继承之前&#xff0c;我们要明确一点&#xff0c;继承是一个比较复杂的编写类的方式…

并口学习之一

1.由于windows并不是一个实时控制系统,通过并口只能最大输出100Khz的脉冲频率.这对于普通电机来说已经足够了. 但是如果对可支持200Khz及以上的电机来说,这真是个不好的消息.USB口等输出脉冲的最大速度可无限提高了.这变由外部接口卡的性能决定了.因此有些USB口卡支持最大脉冲输…

MSSQL优化之————探索MSSQL执行计划

原文链接&#xff1a;http://blog.csdn.net/no_mIss/archive/2006/11/09/1374978.aspx 作者&#xff1a;no_mIss QQ:34813284 时间&#xff1a;2006.11.07 23:30:00 环境&#xff1a;win2003 mssql2005 最近总想整理下对MSSQL的一些理解与感悟&#xff0c;却一直没有心思和…

java web的动静分离_Apache结合Tomcat实现动静分离的方法

实验环境Apache和Tomcat均安装在IP地址为192.168.153.136的主机上 主机操作系统为centos7 实验之前关闭防火墙 ,命令&#xff1a; systemctl stop firewalld 关闭seliunx &#xff0c;命令&#xff1a;setenforce 0 实验效果为Apache处理html静态资源&#xff0c;Tomcat处理jsp…

jquery调用WCF

1.添加新项&#xff1a;启用了Ajax的WCF。2.[ServiceContract(Namespace "")] [AspNetCompatibilityRequirements(RequirementsMode AspNetCompatibilityRequirementsMode.Allowed)] public class Service { [OperationContract] public st…

java 数组地图绘画_Java将地图转换为数组[Snippet]

让我们编写一个将Map值转换为String数组的Java程序。将映射值转换为数组示例包 网。javaguides。corejava ;导入 java。util。数组 ;导入 java。util。收藏 ;导入 java。util。HashMap ;导入 java。util。地图 ;公共 类 MapToArrayExample {public String [] mapValuesToArray…