客户端代码:
Html代码
<html> <head> <title></title> <script src="../js/socket.io.client.js"></script> <script type="text/javascript"> function doit() { var socket = io.connect('http://localhost'); socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据 console.log(data.hello);//data为应服务器发送过来的数据。 socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输 }); socket.on('other', function (data) {//接收另一个名为'other'数据, console.log(data.hello); socket.emit('event1', { my:'other data' }); }); } </script> </head> <body> <button id='btn' onclick="doit()">click me</button> </body> </html>
在chrome,Crtl+Shift+j打开终端,可看到输出结果。
socket.io.client.js可以https://github.com/LearnBoost/socket.io-client下载到本地,在<script src="..">指向本机的js库。
服务器用nodejs实现
代码
Javascript代码
var http= require('http'), io= require('socket.io'), express= require('express'); var app = express.createServer(), io = io.listen(app); app.listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据 socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据 console.log(data.my); }); socket.emit('other', { hello: 'other world' });//发送另一个数据 socket.on('evnet1', function (data) {//捕获另外一个数据 console.log(data.my); }); });
测试结果,客户端可正常显示
引用
world
other world
other world
服务器端显示结果:
引用
C:\java\Nodejs>node server2.js
info - socket.io started
debug - client authorized
info - handshake authorized 15551970622100878177
debug - setting request GET /socket.io/1/websocket/15551970622100878177
debug - set heartbeat interval for client 15551970622100878177
debug - client authorized for
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
debug - websocket writing 5:::{"name":"other","args":[{"hello":"other world"}
]}
debug - emitting heartbeat for client 15551970622100878177
debug - websocket writing 2::
debug - set heartbeat timeout for client 15551970622100878177
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 15551970622100878177
debug - set heartbeat interval for client 15551970622100878177
^C
info - socket.io started
debug - client authorized
info - handshake authorized 15551970622100878177
debug - setting request GET /socket.io/1/websocket/15551970622100878177
debug - set heartbeat interval for client 15551970622100878177
debug - client authorized for
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
debug - websocket writing 5:::{"name":"other","args":[{"hello":"other world"}
]}
debug - emitting heartbeat for client 15551970622100878177
debug - websocket writing 2::
debug - set heartbeat timeout for client 15551970622100878177
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 15551970622100878177
debug - set heartbeat interval for client 15551970622100878177
^C
在世界的中心呼喚愛 写道
提示找不到 express
npm install express
另外,有些IO API已经deprecated,改成:
- var http= require('http'), io= require('socket.io');
- var app = http.createServer(), io = io.listen(app);
- app.listen(81);
这样就可以不必引用express
相关推荐
Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端之间的实时、低延迟的数据传输。在Java环境中,我们可以使用Socket.IO的Java客户端库来构建这样的应用...
以一个简单的例子来看,Node.js服务器端可以使用http模块创建服务器,并利用Socket.IO库来启动Socket服务。客户端则可以通过Socket.IO提供的JavaScript库,轻松地与服务器建立连接,并进行实时的数据交换。当有用户...
Socket.IO 是一个实时应用程序框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端可以即时交换数据。这个名为“socket.io-android-chat”的项目是一个使用Socket.IO在Android平台...
标题中的“flask+socket.io 实时dashboard 可接stormMqtt”揭示了这个项目是用Python构建的一个实时数据可视化 dashboard,它结合了Flask框架、Socket.IO库以及与Storm MQTT的集成。让我们深入探讨这些关键组件及其...
socket.io-cookie 用于socket.io的Cookie解析器中间件 例子 var cookieParser = require ( 'socket.io-cookie' ) ; var server = require ( 'http' ) . Server ( ) ; var io = require ( 'socket.io' ) ( server )...
在这个例子中,开发者可能会创建一个简单的聊天应用或者实时数据更新的应用,通过WebSocket或Socket.IO实现客户端与服务器的实时交互。通过分析"socketTest"文件夹中的代码,我们可以更深入地了解WebSocket和Socket....
综上所述,这个示例代码展示了如何使用HTML、CSS和JavaScript构建一个实时的聊天室应用,通过Socket.IO实现实时通信,同时利用Emoji-Mart库增加表情选择功能,以及实现系统消息、在线用户列表和消息记录等增强功能。...
socketio4net是一个.NET框架的Socket.IO客户端实现,它允许C#应用程序连接到使用Socket.IO的服务器。 1. **C#客户端集成socketio4net**: - 首先,你需要在C#项目中添加socketio4net的NuGet包。 - 创建一个...
redux.io 用于Socket.io的Redux / React绑定 这仍然是Alpha :red_exclamation_mark: 请不要在生产中使用。... 唯一的要求是将socket.io传递给redux.io reducer作为第一个参数。 import { createStore ,
Socket.IO 是一个实时应用程序框架,它为Web开发者提供了一种简单的方式来实现实时、双向通信。这个框架在Node.js环境中运行,结合了WebSocket和其他多种浏览器兼容的通信协议,以克服WebSocket在某些环境下的局限性...
以上是一个基础的Node.js和Socket.IO实现的WebSocket聊天应用。在实际项目中,你可能需要处理更多复杂情况,如认证、房间管理、错误处理等。`socket.io`库提供了丰富的API和中间件机制,可以方便地扩展和定制你的...
1. **是什么**:Socket.IO是一个库,它在服务器和浏览器之间提供了一个统一的接口,用于实现多种通信方式,包括HTML5 WebSocket、Flash Socket、XHR轮询、JSONP轮询和Forever Iframe。无论使用哪种通信方式,客户端...
这个"socket.io-example"项目是一个使用Socket.IO构建的简单聊天应用示例,非常适合初学者理解如何在实际场景中运用Socket.IO。 首先,让我们详细了解一下Socket.IO的核心特性: 1. **实时性**:Socket.IO支持即时...
在本文中,我们将深入探讨如何在Spring Boot工程中利用Netty和Socket.IO构建一个Web消息推送服务。Spring Boot以其简洁的配置和强大的功能,成为Java开发者构建微服务的首选框架。而Netty作为高性能的异步事件驱动...
在本文中,我们将深入探讨如何使用socket.io和express构建一个多房间聊天应用程序。Socket.IO是一个强大的库,它允许开发者在Web应用中实现实时双向通信,而无需关心浏览器兼容性问题。它通过WebSocket、htmlfile、...
“flutter-socket.io-server”项目的目标是为Flutter开发者提供一个易于使用的后端服务器,该服务器能够与Flutter前端应用无缝对接,实现实时通信。由于它是基于JavaScript构建的,因此开发人员可以利用Node.js的...
总结一下,我们使用Socket.IO创建了一个简单的消息传递应用,其中包括一个Node.js服务器,使用Express作为web服务器框架,并通过Socket.IO实现了实时双向通信。客户端是一个简单的HTML页面,用户可以通过输入框发送...
这个库提供了一个简单易用的API,用于创建WebSocket服务器和客户端。安装`ws`库可以使用npm(Node.js包管理器): ``` npm install ws ``` 3. 使用`ws`库创建WebSocket服务器 创建一个WebSocket服务器的基本步骤...
在本文中,我们将探讨如何使用Node.js和Socket.io库来实现实时双向通信。Socket.io是一个流行的JavaScript库,它允许开发者创建实时、低延迟的Web应用程序,特别适合聊天应用、协作工具或实时游戏等场景。下面我们将...
在现代Web开发中,实时通信已经成为不可或缺的一部分,WebSocket协议的出现使得双向通信成为可能,而Socket.IO则是在WebSocket之上建立的一个强大的实时应用框架,它提供了更加灵活和可靠的实时通信解决方案。...