`
biyeah
  • 浏览: 203286 次
  • 来自: ...
社区版块
存档分类
最新评论

用socket.io实现WebSocket的一个简单例子

阅读更多
用socket.io实现WebSocket的一个简单例子

客户端代码:
<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实现
代码
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


服务器端显示结果:
引用
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
分享到:
评论
3 楼 赤道螞蟻 2014-07-22  
如果是數據庫有定時任務,定時更新表的數據。 表中數據變化時,主動發消息給web頁面, 該怎麼做呢??
2 楼 cwalet 2013-05-10  
在世界的中心呼喚愛 写道
提示找不到 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
1 楼 在世界的中心呼喚愛 2013-01-22  
提示找不到 express

相关推荐

    Socket.IO demo程序

    Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端之间的实时、低延迟的数据传输。在Java环境中,我们可以使用Socket.IO的Java客户端库来构建这样的应用...

    nodejs结合Socket.IO实现的即时通讯功能详解

    以一个简单的例子来看,Node.js服务器端可以使用http模块创建服务器,并利用Socket.IO库来启动Socket服务。客户端则可以通过Socket.IO提供的JavaScript库,轻松地与服务器建立连接,并进行实时的数据交换。当有用户...

    socket.io-android-chat,一个简单的socket.io和android聊天演示.zip

    Socket.IO 是一个实时应用程序框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端可以即时交换数据。这个名为“socket.io-android-chat”的项目是一个使用Socket.IO在Android平台...

    flask+socket.io 实时dashboard 可接stormMqtt

    标题中的“flask+socket.io 实时dashboard 可接stormMqtt”揭示了这个项目是用Python构建的一个实时数据可视化 dashboard,它结合了Flask框架、Socket.IO库以及与Storm MQTT的集成。让我们深入探讨这些关键组件及其...

    socket.io-cookie:用于socket.io的Cookie解析器中间件

    socket.io-cookie 用于socket.io的Cookie解析器中间件 例子 var cookieParser = require ( 'socket.io-cookie' ) ; var server = require ( 'http' ) . Server ( ) ; var io = require ( 'socket.io' ) ( server )...

    socketTest.zip

    在这个例子中,开发者可能会创建一个简单的聊天应用或者实时数据更新的应用,通过WebSocket或Socket.IO实现客户端与服务器的实时交互。通过分析"socketTest"文件夹中的代码,我们可以更深入地了解WebSocket和Socket....

    一个使用HTML、CSS、JavaScript和Socket.IO库实现的聊天室应用程序的示例代码

    综上所述,这个示例代码展示了如何使用HTML、CSS和JavaScript构建一个实时的聊天室应用,通过Socket.IO实现实时通信,同时利用Emoji-Mart库增加表情选择功能,以及实现系统消息、在线用户列表和消息记录等增强功能。...

    C#与nodejs socketio 互传

    socketio4net是一个.NET框架的Socket.IO客户端实现,它允许C#应用程序连接到使用Socket.IO的服务器。 1. **C#客户端集成socketio4net**: - 首先,你需要在C#项目中添加socketio4net的NuGet包。 - 创建一个...

    redux.io:Socket.IO的Redux绑定

    redux.io 用于Socket.io的Redux / React绑定 这仍然是Alpha :red_exclamation_mark: 请不要在生产中使用。... 唯一的要求是将socket.io传递给redux.io reducer作为第一个参数。 import { createStore ,

    socket -- io 小例子

    Socket.IO 是一个实时应用程序框架,它为Web开发者提供了一种简单的方式来实现实时、双向通信。这个框架在Node.js环境中运行,结合了WebSocket和其他多种浏览器兼容的通信协议,以克服WebSocket在某些环境下的局限性...

    nodejs实现的websocket案例

    以上是一个基础的Node.js和Socket.IO实现的WebSocket聊天应用。在实际项目中,你可能需要处理更多复杂情况,如认证、房间管理、错误处理等。`socket.io`库提供了丰富的API和中间件机制,可以方便地扩展和定制你的...

    Vue与Node.js通过socket.io通信的示例代码

    1. **是什么**:Socket.IO是一个库,它在服务器和浏览器之间提供了一个统一的接口,用于实现多种通信方式,包括HTML5 WebSocket、Flash Socket、XHR轮询、JSONP轮询和Forever Iframe。无论使用哪种通信方式,客户端...

    socket.io-example

    这个"socket.io-example"项目是一个使用Socket.IO构建的简单聊天应用示例,非常适合初学者理解如何在实际场景中运用Socket.IO。 首先,让我们详细了解一下Socket.IO的核心特性: 1. **实时性**:Socket.IO支持即时...

    springboot工程基于netty-socketio的 web推送消息简单代码

    在本文中,我们将深入探讨如何在Spring Boot工程中利用Netty和Socket.IO构建一个Web消息推送服务。Spring Boot以其简洁的配置和强大的功能,成为Java开发者构建微服务的首选框架。而Netty作为高性能的异步事件驱动...

    基于socket.io+express实现多房间聊天

    在本文中,我们将深入探讨如何使用socket.io和express构建一个多房间聊天应用程序。Socket.IO是一个强大的库,它允许开发者在Web应用中实现实时双向通信,而无需关心浏览器兼容性问题。它通过WebSocket、htmlfile、...

    flutter-socket.io-server:套接字快速基本服务器

    “flutter-socket.io-server”项目的目标是为Flutter开发者提供一个易于使用的后端服务器,该服务器能够与Flutter前端应用无缝对接,实现实时通信。由于它是基于JavaScript构建的,因此开发人员可以利用Node.js的...

    socket.io:用socket.io创建一条消息并表达

    总结一下,我们使用Socket.IO创建了一个简单的消息传递应用,其中包括一个Node.js服务器,使用Express作为web服务器框架,并通过Socket.IO实现了实时双向通信。客户端是一个简单的HTML页面,用户可以通过输入框发送...

    node.js websocket

    这个库提供了一个简单易用的API,用于创建WebSocket服务器和客户端。安装`ws`库可以使用npm(Node.js包管理器): ``` npm install ws ``` 3. 使用`ws`库创建WebSocket服务器 创建一个WebSocket服务器的基本步骤...

    Nodejs+Socket.io实现通讯实例代码

    在本文中,我们将探讨如何使用Node.js和Socket.io库来实现实时双向通信。Socket.io是一个流行的JavaScript库,它允许开发者创建实时、低延迟的Web应用程序,特别适合聊天应用、协作工具或实时游戏等场景。下面我们将...

    marty-socket.io-state-source:Marty Socket.IO状态源-Source mart

    在现代Web开发中,实时通信已经成为不可或缺的一部分,WebSocket协议的出现使得双向通信成为可能,而Socket.IO则是在WebSocket之上建立的一个强大的实时应用框架,它提供了更加灵活和可靠的实时通信解决方案。...

Global site tag (gtag.js) - Google Analytics