注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jiyinyiyong

/chenyong/, 1991, dreamer, coder

 
 
 

日志

 
 
关于我

http://tiye.me

文章分类
网易考拉推荐

socket.io 初学笔记  

2011-12-14 16:35:05|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
官网的文档很简短, 没有网络编程基础学起来很晕
http://socketio-example.nodester.com/
http://socket.io/#how-to-use
下面是几个搭建聊天应用的博客
http://www.cnblogs.com/fullhouse/archive/2011/07/18/2109936.html
http://js8.in/792.html
http://blog.frost.tw/code/poston-2011-10-05/postid-1256
我搭的聊天在这里 http:zhonglichat.cnodejs.net

Javascript 手册看这里
https://developer.mozilla.org/en/JavaScript/Reference
jQuery 内容看这里
http://www.w3school.com.cn/jquery/jquery_ref_manipulation.asp
http://docs.jquery.com/Tutorials#.E7.AE.80.E4.BD.93.E4.B8.AD.E6.96.87.E8.BE.85.E5.AF.BC
获取 #text 的文本框里面文字的用法 ($ '#text').val()
jQuery 新增节点 (a = $ "<p>p</p>"; ($ "#id").append p)

script(src="/socket.io/socket.io.js") // 客户端的引用直接这样, 会自动识别
尝试从网上下载的版本运行都不正常, 看来这是唯一正确的办法

socket.brodcast.emit() # 发送给其他所有浏览器, 不包括我方浏览器
socket.send() # 相当于是 socket.emit 'message', ()
socket.emit () # 可以支持两个以上个数的参数

"set nickname" 的用法是指定在这个消息上用 (socket.set 'nickname', (->)) 来操作
只管按格式填入数据, 再从浏览器发送 (socket.on "set nickname", ()) 消息即可
服务器收到后可用 (socket.get 'nickname', (->)) 来获取用户昵称

新建 "/chat" 频道的话, 似乎从服务器接收来自浏览器的 emit 没有成功

Heroku 不支持 websocket, 但 socket.io 还是能运行的, 需要额外设置
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10);
然后因为 firefox12a 似乎对 websocket 有问题, 可以用这指定不用 ws
(三个链接内容一致, 注意建立 socket 的地址别写错了, 郁闷的)
http://stackoverflow.com/questions/6223867/can-i-set-up-socket-io-chat-on-heroku
http://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku
http://stackoverflow.com/questions/6223867/can-i-set-up-socket-io-chat-on-heroku

socket.io 有很多的调试信息, 可以用 (io.set 'log level', 1) 压缩
http://stackoverflow.com/questions/6807775/nodejs-remove-debug-mode
https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO

CoffeeScript 中写的时候注意官网例子有问题, 函数声明最好在调用之前
直接用 $ coffee server.coffee 运行的时候需要把函数声明置前

然后 socket.io 的 github 上有这样的创建群组的 API
socket.join('justin bieber fans');
socket.broadcast.to('justin bieber fans').emit('new fan');
io.sockets.in('rammstein fans').emit('new non-fan');
我测试的时候第二行是无效的, 第三行有效, 升级依然, 不过至少一个能用
另外还有针对域名的 namespace 分组的功能, 具体看 github 上的文档
https://github.com/learnboost/socket.io
  评论这张
 
阅读(1302)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017