专栏首页游戏杂谈Socket.IO + Express实现的跨浏览器、子域的聊天室

Socket.IO + Express实现的跨浏览器、子域的聊天室

实例中用到了(实例在Windows XP下运行):Node.jsSocket.IOExpress.jsjadestylus

先在hosts文件中添加两行规则,关于两个子域的:sub1.localhost、sub2.localhost

使用socket.io

1: var exp = require('express');

       2: var app = exp.createServer();

       3:  

       4: global.socket = require('socket.io').listen(app);

       5: global.socket.set('log level', 1);

       6: global.socket.set('transports', [ 'websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);

加载配置,创建子域的应用

1: app.use(exp.vhost('sub1.' + global.host, require('./subdomains/sub1')));

       2: app.use(exp.vhost('sub2.' + global.host, require('./subdomains/sub2')));

       3:  

       4: require('./app/config')(app, exp);

       5: require('./app/server/router')(app);

       6: require('./app/server/modules/chat-socket');

chat-socket.js模块

1: module.exports = function() {

       2:         

       3:     global.socket.of('/chat').on('connection', function(socket) { 

       4:        //todo 

       5:     });

       6: }();

前台页面使用socket.io.js建立连接

1: socket = io.connect('/chat');

       2: socket.on('status', function (connections) {

       3:     

       4: });

       5: socket.on('user-ready', function (data) {

       6:     

       7: });

       8: socket.on('user-message', function (data) {

       9:     

      10: });

      11:  

      12: socket.on('user-disconnected', function (data) {

      13:     

      14: });

      15:  

      16: //向后台发送消息

      17: socket.emit('user-ready', {name : 'xxx'});

运行完整的示例node app.js即可,下载示例源码>>

本文参考:

1、http://www.quietless.com/kitchen/building-a-node-js-chat-application-and-sharing-socket-io-across-multiple-subdomains/

2、creating-a-basic-site-with-node-and-express

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • socket.io的websocket示例

    写了一个简单的demo,直接上代码吧。用的时候注意一下版本号,可能 socket.io 的 API 有修改~

    meteoric
  • 基于Node.js的Web Socket

    以前看到过很多关于node.js的文章,但一直没有尝试去搭建node.js的环境。这里有一篇文章叫“websocket与node.js的完美结合”

    meteoric
  • Mac下的Jenkins安装

    1)通过命令行安装   brew install jenkins,可能会遇到先更新 brew 的情况  https://brew.sh/index_zh-cn;

    meteoric
  • socket.io实践干货

    sunsky
  • TCP套接字绑定双端口传输文件(python)

    服务端代码 import socket # 创建tcp服务套接字 def main(): tcp_server_socket = socket.so...

    zhaoolee
  • php 纯socket编程核心的东西!socket_read阻塞的问题!

    最大视角-从Unix底层 理解 python的io模型、python异步IO、python的select、Unix的select、epoll fileno 的...

    waki
  • 网络编程

    阅读目录 一.楔子 二.客户端/服务端架构 三.网络基础 四.套接字(socket)初使用 五.黏包 六.验证客户端链接的合法性 七.socketserver ...

    人生不如戏
  • 携手老李一起整山寨Workerman(八)

    大家好,我还是那个文风浮夸词藻华丽、内容正规内涵犀利、写出一篇文章往那里一放,就能吸引极少数泥腿子的老李。

    老李秀
  • socket 编程初探

    一 简介 socket是两个应用程序进行通信的管道,这两个应用程序可以在同一台机器上,也可以位于两台不同的机器上,相同的网络或者不同网络之间的。Pyth...

    用户1278550
  • python实现socket通讯(UDP)

    import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, ...

    阳光岛主

扫码关注云+社区

领取腾讯云代金券