使用sails.io库将cross-domain-socket.io集成到客户端

Matan Gubkin

我已经在服务器上基于sails.js编写了一个聊天应用程序,因此客户端中的所有代码基本上都在本地主机上运行。

聊天就像是在做梦,但现在我想将所有客户端移到我的cordova应用程序中。

这是我的服务器端代码(socket.js)

onConnect: function(session, socket) {

    // By default, do nothing.
    console.log('hello');
    socket.emit('news', "Welcome to the chat");

    socket.on('send message', function(data){
        console.log(data);
        socket.broadcast.emit('new', data);
        sails.sockets.emit(sails.sockets.id(socket),'new', data);
    });
},

这是我的客户端(服务器本地主机)聊天文件:

$('#form1').submit(function(e){
    e.preventDefault();
    io.socket.emit('send message', $('#userText').val());
    $('#userText').val('');
});

io.socket.on('news', function (msg) {
    console.log(msg);
    $('#content').append(msg + '<br />');
});

io.socket.on('new', function(data){
    console.log(data);
    $('#content').append(data + '<br />');
});

这是请求userCategories API的客户端(服务器本地主机):

io.socket.get('http://178.62.83.248:1337/userCategories', function (resData)    {
   console.log(resData); // => {id:9, name: 'Timmy Mendez'}
});

io.socket.on('usercategories', function(message){
    console.log(message);
});

现在这是我在cordova客户端(index.js)上尝试过的操作:

<script src="lib/sails.io.js/sails.io.js"></script>
<script>
    io.sails.url = 'http://178.62.83.248:1337';
    io.socket.get('http://178.62.83.248:1337/userCategories', function (resData) {
      console.log(resData); // => {id:9, name: 'Timmy Mendez'}
    });

    io.socket.on('usercategories', function(message){
        console.log(message);
    });
</script>

该代码以一种非常奇怪的方式起作用。当应用程序启动时,它尝试连接到:http ://178.62.83.248:1337/__getcookie ,然后它失败了?并在控制台中向我返回此消息:

        Socket is trying to reconnect to Sails...
 _-|>_-  (attempt #1)

        Socket is trying to reconnect to Sails...
 _-|>_-  (attempt #2)

尝试43、44等...

所以我希望有人可以向我解释这是什么意思,我该如何解决。

Matan Gubkin

我已经解决了这个问题。发生这种情况的原因是,当您在客户端上安装sails.io文件时,实际上是在安装最新版本。为了连接到服务器,您需要使用正确版本的sailsio.js。在我的情况下,我在服务器上使用了Sails 10.5,因此必须在客户端中包含特定文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android上使用socket.io客户端库

来自分类Dev

使用Socket.IO的Python客户端到nodeJS服务器

来自分类Dev

如何使用 socket.io 客户端发出数据?

来自分类Dev

使用node.js + socket.io + express / ejs将数据从客户端传递到服务器

来自分类Dev

Socket.io客户端到客户端逻辑,有很多用户

来自分类Dev

Socket.io客户端到客户端逻辑,有很多用户

来自分类Dev

如何使用socket.io将响应发送回客户端?

来自分类Dev

使用socket.io-stream将文件从服务器流传输到客户端

来自分类Dev

如何使用socket.io将响应发送回客户端?

来自分类Dev

如何使用socket.io从客户端调用服务器端功能?

来自分类Dev

使用socket.io将实时数据显示到Win Form C#/ VB客户端应用程序

来自分类Dev

如何使用 socket.io 库区分客户端 TCP 套接字和客户端 websocket?

来自分类Dev

Socket.io:如何使用Socket.io-redis适配器对房间中的客户端进行计数

来自分类Dev

Socket.io将数组传递给客户端

来自分类Dev

如何使用socket.io等待客户端响应?

来自分类常见问题

如何使用socket.io向特定客户端发送消息

来自分类Dev

在没有客户端嵌入html的情况下使用socket.io

来自分类Dev

使用命名空间时Socket.io客户端忽略端口[错误?]

来自分类Dev

使用标准Web套接字客户端连接到Socket.io服务器

来自分类Dev

如何通过ES6模块使用Socket.IO客户端?

来自分类Dev

在不同子域上使用Socket.IO服务器和客户端

来自分类Dev

使用socket.io时如何获得房间中的客户端数量?

来自分类Dev

如何使用CLI(而不是通过浏览器)加密socket.io客户端?

来自分类Dev

如何使用socket.io等待客户端响应?

来自分类Dev

在Nodejs项目中使用Socket.io客户端文件时出错

来自分类Dev

使用 socket.io 的聊天应用程序背后的客户端 - 服务器架构

来自分类Dev

无法使用 socket.io 向 nodejs 中的客户端发送消息

来自分类Dev

使用Node.js和Socket.io将更改推送到所有客户端

来自分类Dev

Socket.IO:从客户端到服务器的私有出口

Related 相关文章

  1. 1

    在Android上使用socket.io客户端库

  2. 2

    使用Socket.IO的Python客户端到nodeJS服务器

  3. 3

    如何使用 socket.io 客户端发出数据?

  4. 4

    使用node.js + socket.io + express / ejs将数据从客户端传递到服务器

  5. 5

    Socket.io客户端到客户端逻辑,有很多用户

  6. 6

    Socket.io客户端到客户端逻辑,有很多用户

  7. 7

    如何使用socket.io将响应发送回客户端?

  8. 8

    使用socket.io-stream将文件从服务器流传输到客户端

  9. 9

    如何使用socket.io将响应发送回客户端?

  10. 10

    如何使用socket.io从客户端调用服务器端功能?

  11. 11

    使用socket.io将实时数据显示到Win Form C#/ VB客户端应用程序

  12. 12

    如何使用 socket.io 库区分客户端 TCP 套接字和客户端 websocket?

  13. 13

    Socket.io:如何使用Socket.io-redis适配器对房间中的客户端进行计数

  14. 14

    Socket.io将数组传递给客户端

  15. 15

    如何使用socket.io等待客户端响应?

  16. 16

    如何使用socket.io向特定客户端发送消息

  17. 17

    在没有客户端嵌入html的情况下使用socket.io

  18. 18

    使用命名空间时Socket.io客户端忽略端口[错误?]

  19. 19

    使用标准Web套接字客户端连接到Socket.io服务器

  20. 20

    如何通过ES6模块使用Socket.IO客户端?

  21. 21

    在不同子域上使用Socket.IO服务器和客户端

  22. 22

    使用socket.io时如何获得房间中的客户端数量?

  23. 23

    如何使用CLI(而不是通过浏览器)加密socket.io客户端?

  24. 24

    如何使用socket.io等待客户端响应?

  25. 25

    在Nodejs项目中使用Socket.io客户端文件时出错

  26. 26

    使用 socket.io 的聊天应用程序背后的客户端 - 服务器架构

  27. 27

    无法使用 socket.io 向 nodejs 中的客户端发送消息

  28. 28

    使用Node.js和Socket.io将更改推送到所有客户端

  29. 29

    Socket.IO:从客户端到服务器的私有出口

热门标签

归档