使用Node.js制作便携式在线聊天应用程序是否可行?

时间:2011-09-19 19:55:30

标签: node.js chat

我想知道是否可以使用Node.js制作便携式聊天应用程序。

我对便携式的意思是,如果有一个中心网站提供与Node.js的聊天服务,用户可以获取脚本代码(无论是基于JavaScript还是iframe)并发布聊天节目在他们的网站上。

假设此应用程序托管在chatServer.com

  1. 例如,如果用户的ID为chatScreen,且表格输入足够,并且已链接了chatServer.com中的一个脚本
  2. 或者

    1. 用户可以只使用iframe聊天页面。 (例如:chatServer.com/chat/room/roomName)
    2. 或者

      1. 使用flash swf将其移植到页面中。
      2. 如果我没记错的话,JSON数据不能跨不同的域进行交易。

        你认为有可能提出这个申请吗?

        我只是想知道是否可以构建它。

        我见过一些使用'Python twisted'+'swf'

        实现的类似网络聊天应用程序

2 个答案:

答案 0 :(得分:2)

如果使用socket.io,它只需使用jsonp进行跨域通信。

<script src="//chatServer.com/socket.io.js"></script>
<script>
  var socket = io.connect('//chatServer.com');
  socket.on('chat', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

答案 1 :(得分:0)

我在跨域遇到了问题 我的app.js代码是

 var express = require('express'),
 app = express();
 var port = process.env.PORT || 8080;

// Initialize a new socket.io object. It is bound to 
// the express app, which allows them to coexist.

var io = require('socket.io').listen(app.listen(port));

// Require the configuration and the routes files, and pass
// the app and io as arguments to the returned functions.
  io.use(function(socket, next) {
   var handshakeData = socket.request;
    //console.log(handshakeData);
    next();

                });

    // Require the configuration and the routes files, and pass
     // the app and io as arguments to the returned functions.

   app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "X-Requested-With");
      res.header("Access-Control-Allow-Methods", "GET,POST");
      next();
     });
    require('./config')(app, io);
    require('./routes')(app, io);

    console.log('Your application is running on http://localhost:' + port);