Socket.io播放不工作
我有以下代码:
var room = "1"; var chat = io.connect("localhost:3700/"); self.chat = chat; chat.on("connection", function(socket){ socket.emit("room", room); socket.on('message', function (data) { self.receiveMessage(data); }); }); chat.broadcast.to(room).emit('send',"HEllo");
receiveMessage:
receiveMessage: function(data){ var $elem = $("#chat1"); var $content = $elem.find(".messageText"); if(data.message) { messages.push(data); var html = ''; for(var i=0; i<messages.length; i++) { html += '<b>' + (messages[i].username ? messages[i].username : 'Server') + ': </b>'; html += messages[i].message + '<br />'; } $content.html(html); } else { console.log("There is a problem:", data); } }
chat.broadcast.to(room).emit('send',"HEllo");
给我的错误:
Uncaught TypeError:不能调用未定义的方法
我究竟做错了什么?
不太确定,但我认为你只能通过连接发送广播。
你可以试试这个:
var room = "1"; var chat = io.connect("localhost:3700/"); self.chat = chat; chat.on("connection", function(socket){ socket.emit("room", room); socket.on('message', function (data) { self.receiveMessage(data); }); chat.broadcast.to(room).emit('send',"HEllo"); });
当然,你也可以在一个单独的处理程序中发送广播,即:
var room = "1"; var chat = io.connect("localhost:3700/"); self.chat = chat; chat.on("connection", function(socket){ socket.emit("room", room); socket.on('message', function (data) { self.receiveMessage(data); }); socket.on('foo event', function(data) { chat.broadcast.to(room).emit('send',"HEllo"); } });
- 为什么在一个项目中同时使用`morgan`和`debug`日志包
- 我应该使用REST API还是使用地理位置应用程序的Socket.io?
- 如何实现Socket.IO与ASP.Net,IISNode,Node.JS和SQL Server的基于事件的推送通知?
- “npmconfiguration设置registryhttps://registry.npmjs.org/”不在Windows bat文件中工作
- 带有AWS Lambda的CasperJs
- 在我的应用程序启动时创build所有路线是不是一个好主意?
- AngularJS Bootstrap – 控制台错误
- JavaScript – 如何列出对象的属性?
- 一般术语放在上下文中