利用Web Socket技术实现client端与server端的连接(以Node.js作为服务器端)

简介:

几乎搞了一个工作日的时间,查找了很多的资料,学习,调试,最终终于把利用web socket方法,在node.js作为服务器的情况下,实现了client端与server端的交互,没办法,学习的过程就是这样,经历过痛苦之后,才能永生~~

虽然web socket这项技术早已经出来了,国外大概在10年就有人去研究,国内的我看最早的大概是在11年(也许有更早的,我没有看到相关资料罢了),而我呢,确是在这几天因为工作的原因,才知道这么个东西,才准备去学习一下。(要知道我学习java script才几天的时间,就在我写这篇文章的时候我还在学习什么是json,oh, my god! 好吧,我之前是搞C++的)。

其实我不太想让大家经历一遍我的痛苦,所以我直接把大家可能遇到最原始的问题发出来。

如果你安装好了node.js之后,并且按照网上大多数的讲web socket技术的资料上写的那样,用js 将服务器端和客户端都写好之后(这两个我相信大家都应该比我更容易掌握,毕竟我才刚接触js),实际上你就可以在命令行中直接运行node xxx.js程序就Ok 了,然后你用你的客户端去连接这个服务器地址,如果出现:TypeError: Object #<WriteStream> has no method 'flush', 直译就是找不到flush 方法。大家发现process.stdou.flush();不难发现这是一条类似于打印语句的东西,所以//掉它,结果发现问题更让人迷惑,最重要的是从来没有成功连接过,所以也不知道成功之后是什么样子的。

这个问题的原因可能在于大家下的一个web socket第三方库,也许你下载的地址是:

https://github.com/remy/html5demos/tree/master/server/ 这个网址真是害人啊,从网上看帖子说的原因是这个库不适用于node.js xx版本之后,因为node.js不断更新,这个库已经不跟着更了,这个有点坑人啊!所以最新的第三方库大家可以下载这个网址上的:

https://github.com/Worlize/WebSocket-Node 一试便成,好东西。然后所有的事情就解决了,可以安心看看代码,然后在其基础上进行修改了。

大家下载解压之后,运行WebSocket-Node-master\test目录下的echo-server.js,然后用自己写的客户端直接连http://localhost:8080  就行了,这个8080是echo-server.js文件里定义的。然后就能连上了,真是让人兴奋啊!

希望大家研究过web socket的人能一起多多交流,还有很多要和大家学习。










本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1290088,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
JSON JavaScript 前端开发
JS服务端技术—Node.js知识点
本篇文章是我开始系统学习Node.js的一些笔记。如果文中阐述不全或不对的,多多交流。
63 0
JS服务端技术—Node.js知识点
|
4月前
|
JavaScript Ubuntu
百度搜索:蓝易云【Ubuntu搭建Nodejs服务器】
请注意,以上步骤仅是简单的示例,实际上,你可以根据需要配置更多Node.js服务器设置和添加更多功能。
37 2
|
4月前
|
JavaScript 前端开发 API
释放 Node.js 的力量:服务器端 JavaScript 综合指南
释放 Node.js 的力量:服务器端 JavaScript 综合指南
32 0
|
11天前
|
JavaScript 前端开发 IDE
【TypeScript技术专栏】TypeScript与Node.js后端开发
【4月更文挑战第30天】TypeScript在Node.js后端开发中日益重要,作为JavaScript超集,它提供静态类型检查和面向对象编程,增强代码可靠性和维护性。集成TypeScript能带来类型安全、更好的IDE体验、易于维护的代码以及增强工具支持。通过安装TypeScript编译器、编写TypeScript文件、配置TSconfig,开发者可以在Node.js项目中利用其高级特性,提高代码质量和开发效率。实践案例显示,TypeScript能确保路由处理器的类型正确,降低错误率。随着社区发展,TypeScript成为提升Node.js开发体验的推荐选择。
|
11天前
|
JavaScript 前端开发 开发工具
【JavaScript 技术专栏】Node.js 基础与实战
【4月更文挑战第30天】本文介绍了Node.js的基础及应用,包括事件驱动的非阻塞I/O、单线程模型和模块系统。内容涵盖Node.js的安装配置、核心模块(如http、fs、path)及实战应用,如Web服务器、文件操作和实时通信。文章还讨论了Node.js的优劣势、与其他技术的结合,并通过案例分析展示项目实施流程。总结来说,Node.js是高效后端开发工具,适合构建高并发应用,其广阔的应用前景值得开发者探索。
|
16天前
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
22 3
|
24天前
|
JavaScript 前端开发 UED
Vue工具和生态系统: Vue.js和服务器端渲染(SSR)有关系吗?请解释。
Vue.js是一个渐进式JavaScript框架,常用于开发单页面应用,但其首屏加载较慢影响用户体验和SEO。为解决此问题,Vue.js支持服务器端渲染(SSR),在服务器预生成HTML,加快首屏速度。Vue.js的SSR可手动实现或借助如Nuxt.js的第三方库简化流程。Nuxt.js是基于Vue.js的服务器端渲染框架,整合核心库并提供额外功能,帮助构建高效的应用,改善用户体验。
20 0
|
25天前
|
数据采集 搜索推荐 JavaScript
Next.js进阶:静态生成、服务器端渲染与SEO优化
【4月更文挑战第13天】Next.js是现代Web开发的关键框架,以其对静态生成(Static Generation)、服务器端渲染(Server-Side Rendering)和SEO的支持而备受青睐。本文深入解析了这三个核心特性的原理、应用和最佳实践。静态生成在构建时生成HTML,适用于内容更新少的页面,通过`getStaticProps`和`getStaticPaths`获取静态数据。服务器端渲染则在每次请求时生成HTML,适合实时数据,使用`getServerSideProps`获取服务器端数据。
31 0
|
27天前
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第二章(Node连接本地数据库)
【4月更文挑战第2天】本文介绍了如何使用Node.js连接本地MySQL数据库。首先,提到了在MySQL官网下载安装数据库和使用Navicat for MySQL进行数据库管理。接着,通过`yarn add mysql`在项目中安装数据库依赖。然后,创建`app.js`文件,设置数据库连接参数,并建立连接进行查询操作。遇到导入模块的错误后,修改导入方式为CommonJS语法。
41 1
|
2月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
141 0