nodenodejs socket client怎么使用

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&o &nbsp,&nbsp
Web领域的实时推送技术,也被称作Realtime技术。这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新。它有着广泛的应用场景,比如在线聊天室、在线客服系统、评论系统、WebIM等。
48 小时热门
关于伯乐头条
伯乐头条是目前 IT 互联网行业中,最热门的头条之一。专注于IT互联网,分享和发现有价值的内容与观点。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2016 伯乐在线c#怎么向nodejs的socket.io发送请求_百度知道
c#怎么向nodejs的socket.io发送请求
1. 简介首先是Socket.IO的官方网站:官网非常简洁,甚至没有API文档,只有一个简单的“How to use”可以参考。因为Socket.IO就跟官网一样简洁好用易上手。那么Socket.IO到底是什么呢?Socket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5,应该可以满足绝大部分需求了。2. 安装部署2.1 安装首先安装非常简单,在node.js环境下只要一句:复制代码 代码如下:npm install socket.io2.2 结合express来构建服务器express是一个小巧的Node.js的Web应用框架,在构建HTTP服务器时经常使用到,所以直接以Socket.IO和express为例子来讲解。复制代码 代码如下:var express = require(&#39;express&#39;)
, app = express()
, server = require(&#39;http&#39;).createServer(app)
, io = require(&#39;socket.io&#39;).listen(server);server.listen(3001);若不使用express,请参考socket.io&#47;#how-to-use3. 基本使用方法主要分为服务器端和客户端两段代码,都非常简单。Server(app.js):复制代码 代码如下:&#47;&#47;接上面的代码app.get(&#39;&#47;&#39;, function (req, res) {
res.sendfile(__dirname + &#39;&#47;index.html&#39;);});io.sockets.on(&#39;connection&#39;, function (socket) {
socket.emit(&#39;news&#39;, { hello: &#39;world&#39; });
socket.on(&#39;other event&#39;, function (data) {
console.log(data);
});});首先io.sockets.on函数接受字符串&connection&作为客户端发起连接的事件,当连接成功后,调用带有socket参数的回调函数。我们在使用socket.IO的时候,基本上都在这个回调函数里面处理用户的请求。socket最关键的是emit和on两个函数,前者提交(发出)一个事件(事件名称用字符串表示),事件名称可以自定义,也有一些默认的事件名称,紧接着是一个对象,表示向该socket发送的内容;后者接收一个事件(事件名称用字符串表示),紧接着是收到事件调用的回调函数,其中data是收到的数据。在上面的例子中,我们发送了news事件和收到了other event事件,那么客户端应该会有对应的接收和发送事件。没错,客户端代码和服务器正好相反,而且非常相似。Client(client.js)复制代码 代码如下:&script src=&&#47;socket.io&#47;socket.io.js&&&&#47;script&&script&
var socket = io.connect(&#39;&#39;);
socket.on(&#39;news&#39;, function (data) {
console.log(data);
socket.emit(&#39;other event&#39;, { my: &#39;data&#39; });
});&&#47;script&有两点要注意的:socket.io.js路径要写对,这个js文件实际放在了服务器端的node_modules文件夹中,在请求这个文件时会重定向,因此不要诧异服务器端不存在这个文件但为什么还能正常工作。当然,你可以把服务器端的socket.io.js这个文件拷贝到本地,使它成为客户端的js文件,这样就不用每次都向Node服务器请求这个js文件,增强稳定性。第二点是要用var socket = io.connect(&#39;网站地址或ip&#39;);来获取socket对象,接着就可以使用socket来收发事件。关于事件处理,上面的代码表示收到“news”事件后,打印收到的数据,并向服务器发送“other event”事件。注:内置默认的事件名例如“disconnect”表示客户端连接断开,“message”表示收到消息等等。自定义的事件名称,尽量不要跟Socket.IO中内置的默认事件名重名,以免造成不必要的麻烦。4. 其他常用API1).向所有客户端广播:socket.broadcast.emit(&#39;broadcast message&#39;);2).进入一个房间(非常好用!相当于一个命名空间,可以对一个特定的房间广播而不影响在其他房间或不在房间的客户端):socket.join(&#39;your room name&#39;);3).向一个房间广播消息(发送者收不到消息):socket.broadcast.to(&#39;your room name&#39;).emit(&#39;broadcast room message&#39;);4).向一个房间广播消息(包括发送者都能收到消息)(这个API属于io.sockets):io.sockets.in(&#39;another room name&#39;).emit(&#39;broadcast room message&#39;);5).强制使用WebSocket通信:(客户端)socket.send(&#39;hi&#39;),(服务器)用socket.on(&#39;message&#39;, function(data){})来接收。5. 使用Socket.IO构建一个聊天室最后,我们通过一个简单的实例来结束本篇。用Socket.IO构建一个聊天室就是50行左右的代码的事情,实时聊天效果也非常好。以下贴出关键代码:Server(socketChat.js)复制代码 代码如下:&#47;&#47;一个客户端连接的字典,当一个客户端连接到服务器时,&#47;&#47;会产生一个唯一的socketId,该字典保存socketId到用户信息(昵称等)的映射var connectionList = {};exports.startChat = function (io) {
io.sockets.on(&#39;connection&#39;, function (socket) {
&#47;&#47;客户端连接时,保存socketId和用户名
var socketId = socket.
connectionList[socketId] = {
socket: socket
&#47;&#47;用户进入聊天室事件,向其他在线用户广播其用户名
socket.on(&#39;join&#39;, function (data) {
socket.broadcast.emit(&#39;broadcast_join&#39;, data);
connectionList[socketId].username = data.
&#47;&#47;用户离开聊天室事件,向其他在线用户广播其离开
socket.on(&#39;disconnect&#39;, function () {
if (connectionList[socketId].username) {
socket.broadcast.emit(&#39;broadcast_quit&#39;, {
username: connectionList[socketId].username
delete connectionList[socketId];
&#47;&#47;用户发言事件,向其他在线用户广播其发言内容
socket.on(&#39;say&#39;, function (data) {
socket.broadcast.emit(&#39;broadcast_say&#39;,{
username: connectionList[socketId].username,
text: data.text
})};Client(socketChatClient.js)复制代码 代码如下:var socket = io.connect(&#39;&#39;);&#47;&#47;连接服务器完毕后,马上提交一个“加入”事件,把自己的用户名告诉别人socket.emit(&#39;join&#39;, {
username: &#39;Username hehe&#39;});&#47;&#47;收到加入聊天室广播后,显示消息socket.on(&#39;broadcast_join&#39;, function (data) {
console.log(data.username + &#39;加入了聊天室&#39;);});&#47;&#47;收到离开聊天室广播后,显示消息socket.on(&#39;broadcast_quit&#39;, function(data) {
console.log(data.username + &#39;离开了聊天室&#39;);});&#47;&#47;收到别人发送的消息后,显示消息socket.on(&#39;broadcast_say&#39;, function(data) {
console.log(data.username + &#39;说: &#39; + data.text);});&#47;&#47;这里我们假设有一个文本框textarea和一个发送按钮.btn-send&#47;&#47;使用jQuery绑定事件$(&#39;.btn-send&#39;).click(function(e) {
&#47;&#47;获取文本框的文本
var text = $(&#39;textarea&#39;).val();
&#47;&#47;提交一个say事件,服务器收到就会广播
socket.emit(&#39;say&#39;, {
username: &#39;Username hehe&#39;
text: text
其他类似问题
为您推荐:
socket的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 node socket.io 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信