我确实是新来的,但我已经阅读了。。自从我开始编程以来。
我还是个新手,在网络方面绝对是个新手。但我会把这份简报保存下来,这样你就可以给出一个决定性的答案。
我有一个网络服务器和一个域名。我想使用websocket来创建一个环境,让两个玩家可以在同一屏幕上同时移动。例如,如果鼠标控制了一个点,两个人连接到一个全球"世界",那么一个人可以实时看到另一个人的点。一个类似的例子是rumpetroll.com。
我不希望得到很多关于如何设计RuneScape这样的游戏的信息(尽管我认为这个想法几乎是一样的)。我只是想深入解释一下如何让这个很酷的小互动继续下去。
任何关于如何编程到套接字的链接都将不胜感激,因为我在互联网上能找到的只是这个概念。没有任何关于机制和每个命令可以做什么的内容。
不管怎样,谢谢大家。
您将需要一个服务器和一个客户端。我假设您了解JavaScript,所以我将提供一个在双方都使用它的示例。
服务器
您将需要nodejs,请按照网站上的说明进行安装。
我将提供使用socket.io的示例,因为您要求使用websocket,但请记住,还有其他解决方案,如Faye,值得一看。
把自己放在一个新的文件夹中,运行npm install socket.io
,这将下载服务器所需的代码;然后将此代码粘贴到名为server.js
的文件中
var io = require('socket.io').listen(8000);
io.sockets.on('connection', function (socket) {
socket.emit('new-connection', { message: 'we have a new user!' });
socket.on('message-from-client', function (data) {
console.log(JSON,stringify(data));
});
});
通过键入node server.js
启动服务器,您应该在控制台中看到info - socket.io started
。
客户
将此代码粘贴到一个名为index.html
的文件中,然后用您喜欢的网络浏览器打开它
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8000');
socket.on('new-connection', function (data) {
alert(JSON.stringify(data));
socket.emit('message-from-client', { message: 'hi' });
});
</script>
一旦你导航到http://localhost:8000
,你就会看到两件事:
- 向您致意的提醒
- 启动服务器的控制台中的消息
每次导航到该url时,都会发生这种情况,尝试使用两个不同的浏览器或在匿名/私人浏览窗口中导航到该url。每次您都应该看到警报和消息。
这是基本设置。从这里开始,您可以随心所欲地将事情复杂化,如果您将使用此解决方案,请考虑用JSON传递数据,如我在示例中所示。
从这里到哪里
正如你所看到的,这真的很容易,如果你想显示一个点,它将为所有用户显示,将客户端鼠标移动绑定到一个函数,该函数将向服务器发送位置,并将其广播给所有其他连接的用户(应该是类似socket.broadcast.emit
的东西,但我不确定,请查看文档),或者你可以简单地发送一个事件,类似于updated-mouse-position
,它将有一个绑定到它的函数来处理图形部分。
希望这能有所帮助,如果你对基本配置有疑问,请随时添加评论。